【发布时间】:2015-08-27 18:59:53
【问题描述】:
我正在学习 python 模拟,并且在检查模拟对象上的方法是否已被调用时遇到问题。
我要测试的代码是这样的:
def main(flags, directory_service):
if flags.has_schema:
directory_service.HasSchema(SCHEMA_NAME)
sys.exit(1)
我的测试代码是:
def testHaltsAfterCheckingSchema(self):
mock_flags = self._CreateDefaultFlags()
mock_flags.has_schema = True
mock_directory_service = MagicMock()
with self.assertRaises(SystemExit) as cm:
key_distributor.main(mock_flags, mock_directory_service)
self.assertTrue(mock_directory_service.HasSchema.assert_called_with(key_distributor.SCHEMA_NAME))
self.assertEqual(cm.exception.code, 1)
当我运行它时,我得到了这个异常:
FAIL: testHaltsAfterCheckingSchema (test123.Test123)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test123.py", line 34, in testHaltsAfterCheckingSchema
self.assertTrue(mock_directory_service.HasSchema.assert_called_with(key_distributor.SCHEMA_NAME))
AssertionError: None is not true
【问题讨论】:
标签: python unit-testing mocking