【发布时间】:2021-03-24 11:09:17
【问题描述】:
from unittest import mock
class A:
def f(self): pass
m = mock.MagicMock(spec_set=A)
m.f.called_once() # I want this to fail
Out[42]: <MagicMock name='mock.f.called_once()' id='140326790593792'>
我在单元测试中犯了一个错误,并在模拟方法上调用了called_once 而不是assert_called_once。调用会产生一个新的MagicMock 实例,因此测试通过了,而不是检查我打算检查的内容——如果调用了该方法。当从spec_set 创建模拟时,如果未定义方法,是否有办法使模拟失败?就像我希望将 spec_set 一直应用到模拟方法本身。
【问题讨论】:
标签: python testing mocking python-unittest.mock