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)
据我所知,不模仿私有方法是不可能做到这一点的。但是,
mock
库(从3.3起在标准库中作为unittest.mock
提供,否则是一个单独的安装)使这一点相对轻松:使用^{} 库是首选方法。在
下面是三个私有方法的完整示例。如果你愿意的话,你可以选择较短的名字,但我最好直截了当。请注意,为了安全起见,您应该声明不仅调用了所需的方法,而且还未调用其他私有方法:
相关问题 更多 >
编程相关推荐