作为单元测试的一部分(使用 pytest),我想检查下面的方法“my_method”是否被调用。def f():
my_instance = MyClass()
my_instance.my_method()我有什么办法可以做到这一点?
2 回答

FFIVE
TA贡献1797条经验 获得超6个赞
建议的更改是:
def f(cls):
cls.my_method()
my_instance = MyClass()
f(my_instance)
然后你可以模拟my_instance并检查它是否被调用。

白衣非少年
TA贡献1155条经验 获得超0个赞
正如我的问题的评论中所建议的,我最终得到了一个使用“模拟”模块中的“补丁”的工作解决方案。
my_file.py
class MyClass():
def __init__(self):
pass
def my_method(self):
pass
def function():
my_instance = MyClass()
my_instance.my_method()
test_my_file.py
import mock
from my_file import function
@mock.patch('my_file.MyClass.my_method')
def test_function(mock_method):
function()
mock_method.assert_called_once()
添加回答
举报
0/150
提交
取消