Python 获取单元测试期间调用的方法的值
我正在使用Python 获取单元测试期间调用的方法的值,python,python-3.x,pytest,pytest-mock,Python,Python 3.x,Pytest,Pytest Mock,我正在使用pytest\u mock模拟函数调用。我想检查对doB()的调用,看看它是否是用值3调用的。我将如何为此编写断言 def testtest(mocker): # arrange mocker.patch.object(ClassA, 'doB', return_value=None) sut = ClassA() # act actual = sut.party(4) # will make a call to doB expected
pytest\u mock
模拟函数调用。我想检查对doB()
的调用,看看它是否是用值3调用的。我将如何为此编写断言
def testtest(mocker):
# arrange
mocker.patch.object(ClassA, 'doB', return_value=None)
sut = ClassA()
# act
actual = sut.party(4) # will make a call to doB
expected = 3
# assert
也许是这样的:
def testtest(mocker):
# arrange
mocked_doB = mocker.patch.object(ClassA, 'doB', return_value=None)
sut = ClassA()
# act
actual = sut.party(4) # will make a call to doB
expected = 3
# assert
mocked_doB.assert_called_once_with(expected)
如果您为模拟对象指定一个值,在本例中为变量mocked\u doB
,您将得到一个MagicMock
对象。使用这个MagicMock对象,您可以从unittest.mock
mock类访问所有类型的方法,例如
- assert_用()调用了一次
- 打电话给伯爵
- 还有更多
mocker
直接访问mock
模块。
这在这里的“用法”下有说明。欢迎使用堆栈溢出!虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请在您的答案中添加解释,并说明适用的限制和假设。@ББПаааПа我更新了上述答案。谢谢你的欢迎。