如何将`msg`传递给unittest.mock断言方法?

时间:2017-10-18 15:16:04

标签: python unit-testing mocking

TestCase文档指定assert方法可以使用可选的msg关键字参数来指定向断言添加上下文的消息:

  

所有断言方法都接受一个 msg 参数,如果指定,该参数将用作失败时的错误消息(另请参阅longMessage)。

有没有办法使用unittest.mock断言方法,特别是assert_any_call

1 个答案:

答案 0 :(得分:1)

查看assert_any_call的{​​{3}},邮件是硬编码的:

raise AssertionError(
    '%s call not found' % expected_string
) from cause

此外,AssertionError直接在代码中引发,而不是失败的assert语句的结果。此模式后面是模块中的所有assert_*方法。因此,除非您子类化并覆盖您感兴趣的方法,否则无法设置自定义消息。