擅长:python、mysql、java
<p>据我所知,不模仿私有方法是不可能做到这一点的。但是,<code>mock</code>库(从3.3起在标准库中作为<code>unittest.mock</code>提供,否则是一个单独的安装)使这一点相对轻松:</p>
<pre><code>try:
# Python 3.3 or later
import unittest.mock as mock
except ImportError:
# Make sure you install it first
import mock
class TestFoo(unittest.TestCase):
def setUp(self):
self.f = Foo()
def test_bar(self):
with mock.patch.object(self.f, '_is_positive_number') as is_pos:
self.f.bar(3)
self.assertTrue(is_pos.called)
</code></pre>