【发布时间】:2019-11-02 13:41:08
【问题描述】:
test.py:
@pytest.mark.django_db
def test_b_called(mocker):
b = mocker.patch('app.service.b')
service.a('b')
assert b.called
service.py:
def a(type):
_actions[type]()
def b():
pass
_actions = { 'b': b }
我的测试将失败,因为我的补丁没有按预期工作。我在这里做错了什么?如果a 直接调用b 而不使用该字典,这绝对有效。我已经对此进行了测试。我知道您可以使用 patch.dict 模拟字典,但是我将如何测试 b 是否被调用?
【问题讨论】:
-
如果我不确定它是否会出现在字典上怎么办?
标签: python django unit-testing pytest python-unittest