测试Django Mock - 检查是否调用了函数/方法

时间:2014-09-29 08:03:13

标签: django mocking callable

我想检查 do_a 调用 do_b 。我这样做:

代码:

def do_a(...):
    ...
    do_b(...)
    ...

测试:

def test_do_a(self):
        ...

        with patch('...do_b', new_callable=do_nothing()) as mock_do_b:
            do_a(...)

        mock_do_b.assert_called_once_with(...)

并且do_nothing:

def do_nothing():
     pass

这工作正常,但我不得不使用do_nothing(),我发现hacky。有没有办法在没有额外无用功能的情况下进行相同的测试do_nothing()?

1 个答案:

答案 0 :(得分:2)

您可以将补丁用作装饰器

@patch('...do_b')
def test_do_a(self, mock_do_b):
    do_a(...)
    mock_do_b.assert_called_once_with(...)