我为使用补丁的测试创建了一个名为MagicMock
的{{1}}对象。
说修补的对象是some_magic_mock
。
在测试代码中有一个电话:
some_patched_object
(提醒:some_patched_object.some_method -= some_parameter
实际上是-=
方法的语法习惯)
现在,在测试代码中,我有以下几行:
__isub__
所以会发生以下情况:
print some_magic_mock.mock_calls
some_magic_mock.assert_has_calls([mock.call.some_method.__isub__(some_parameter)])
some_magic_mock.some_method.__isub__.assert_called_once_with(some_parameter)
语句打印:print
[call.some_method.__isub__(some_parameter)]"
我的印象是断言是平等的,除了第二个断言也断言Expected to be called once. Called 0 times.
正好是1。
我也不明白为什么第二个断言因我看到的call_count
而失败。
总的来说,我觉得我在这里缺少一些细微差别,并乐意为我清理它。
编辑1:
对于那些问: 这是我的代码的复制粘贴,实际名称更改为“some_X”和“expected_X”,这基本上与上述相同:
mock_calls
首次打印产量:print self.some_magic_mock.mock_calls
print self.some_magic_mock.some_method.__isub__.mock_calls
self.some_magic_mock.assert_has_calls([mock.call.some_method.__isub__(expected_param)])
self.some_magic_mock.some_method.__isub__.assert_called_once_with(expected_param)
第二次印刷产量:[call.some_method.__isub__(expected_param)]
第一个断言通过。
第二个断言失败了。