<p>使用<a href="http://www.voidspace.org.uk/python/mock/" rel="nofollow">^{<cd1>}</a>库是首选方法。在</p>
<p>下面是三个私有方法的完整示例。如果你愿意的话,你可以选择较短的名字,但我最好直截了当。请注意,为了安全起见,您应该声明不仅调用了所需的方法,而且还未调用其他私有方法:</p>
<pre><code>from unittest import TestCase
from mock import Mock
class MyTestCase(TestCase):
def setUp(self):
self.instance = Foo()
self.instance._is_positive_number = Mock()
self.instance._is_negative_number = Mock()
self.instance._is_zero = Mock()
def test_positive(self):
self.instance.bar(3)
self.assertTrue(self.instance._is_positive_number.called)
self.assertFalse(self.instance._is_negative_number.called)
self.assertFalse(self.instance._is_zero.called)
def test_negative(self):
self.instance.bar(-3)
self.assertFalse(self.instance._is_positive_number.called)
self.assertTrue(self.instance._is_negative_number.called)
self.assertFalse(self.instance._is_zero.called)
def test_zero(self):
self.instance.bar(0)
self.assertFalse(self.instance._is_positive_number.called)
self.assertFalse(self.instance._is_negative_number.called)
self.assertTrue(self.instance._is_zero.called)
</code></pre>