使用pytest mocker.patch后如何获取call_count
How to get call_count after using pytest mocker.patch
我正在使用 pytest-mocker 来修补一个函数来模拟它正在做的事情。但是我也想知道它被调用了多少次以及它的调用参数。
一些脚本:
def do_something():
x = 42
return calculate(x)
def calculate(num):
return num * 2
测试:
def test_do_something(mocker):
mocker.patch("sb.calculate", return_value=1)
result = do_something()
assert result == 1 # Assert calculate is mocked correctly and returned whatever what I set above
这帮助我模拟了调用,但我想知道在测试期间调用了多少次 calculate 及其调用参数。努力看看如何做到这一点。
你可以这样做:
mock_calculate = mocker.patch("sb.calculate", return_value=1)
assert mock_calculate.call_count == 1
或者如果您想检查传递了哪些参数:
mock_calculate = mocker.patch("sb.calculate", return_value=1)
assert mock_calculate.called_once_with(1)
我正在使用 pytest-mocker 来修补一个函数来模拟它正在做的事情。但是我也想知道它被调用了多少次以及它的调用参数。
一些脚本:
def do_something():
x = 42
return calculate(x)
def calculate(num):
return num * 2
测试:
def test_do_something(mocker):
mocker.patch("sb.calculate", return_value=1)
result = do_something()
assert result == 1 # Assert calculate is mocked correctly and returned whatever what I set above
这帮助我模拟了调用,但我想知道在测试期间调用了多少次 calculate 及其调用参数。努力看看如何做到这一点。
你可以这样做:
mock_calculate = mocker.patch("sb.calculate", return_value=1)
assert mock_calculate.call_count == 1
或者如果您想检查传递了哪些参数:
mock_calculate = mocker.patch("sb.calculate", return_value=1)
assert mock_calculate.called_once_with(1)