在使用mock库时,我遇到了这样一种情况:调用my_mock.reset_mock()
方法返回一个新的Mock
实例,而不是重置{Mock.reset_mock()
,但我不知道这是怎么发生的。在
示例运行(Python 2.7):
>>> mocks.normal_mock.mock_calls
Out[6]: []
>>> mocks.normal_mock.reset_mock()
>>> mocks.normal_mock.mock_calls
Out[8]: []
>>> mocks.abnormal_mock.mock_calls
Out[2]: []
>>> mocks.abnormal_mock.reset_mock()
>>> <MagicMock name='abnormal_mock.reset_mock()' id='157604104'>
>>> mocks.abnormal_mock.mock_calls
Out[4]: [call.reset_mock()]
知道是什么原因造成的吗?在
附加信息:
unittest.TestCase.tearDown()
中的测试之间重置。在patch.start()
创建的
发现了问题。在
由于某种复杂的模拟创建方法,我在一个已经修补的模块上调用}的修补程序调用,
patch()
,也就是说,我正在修补一个Mock()
对象。由于autospec
是{mock_reset()
被修补了。在解决方案是简化模拟创建流程。在
相关问题 更多 >
编程相关推荐