下面的代码有什么问题?你知道吗
我希望assert call_func_once_with("b")
抛出一个错误,因为调用func被传递了'a'。我确认这个函数确实被调用过一次,参数是'a'。你知道吗
from unittest.mock import Mock, patch
def call_func(x):
pass
@patch("__main__.call_func")
def test_call_func(call_func):
call_func("a")
assert call_func.called_once_with("b")
assert call_func.called == 1
print(call_func.call_args)
test_call_func()
输出:
call('a')
你不是第一个注意到这些类型断言的奇怪的人(参见Magic mock assert_called_once vs assert_called_once_with weird behaviour)
值得一提的是,我只能建议您尝试创建一个从
unittest.TestCase
继承的测试类,然后使用assertEqual
方法来获得更一致的测试行为:这将产生以下(预期)结果:
相关问题 更多 >
编程相关推荐