猿问

如何使用 Python 测试函数内部是否调用了实例方法?

作为单元测试的一部分(使用 pytest),我想检查下面的方法“my_method”是否被调用。

def f():
    my_instance = MyClass()
    my_instance.my_method()

我有什么办法可以做到这一点?


Smart猫小萌
浏览 167回答 2
2回答

FFIVE

建议的更改是:def f(cls):    cls.my_method()my_instance = MyClass()f(my_instance)然后你可以模拟my_instance并检查它是否被调用。

白衣非少年

正如我的问题的评论中所建议的,我最终得到了一个使用“模拟”模块中的“补丁”的工作解决方案。my_file.pyclass MyClass():    def __init__(self):        pass    def my_method(self):        passdef function():    my_instance = MyClass()    my_instance.my_method()test_my_file.pyimport mockfrom my_file import function@mock.patch('my_file.MyClass.my_method')def test_function(mock_method):    function()    mock_method.assert_called_once()
随时随地看视频慕课网APP

相关分类

Python
我要回答