作為單元測試的一部分(使用 pytest),我想檢查下面的方法“my_method”是否被調(diào)用。def f():
my_instance = MyClass()
my_instance.my_method()我有什么辦法可以做到這一點?
2 回答

FFIVE
TA貢獻(xiàn)1797條經(jīng)驗 獲得超6個贊
建議的更改是:
def f(cls):
cls.my_method()
my_instance = MyClass()
f(my_instance)
然后你可以模擬my_instance并檢查它是否被調(diào)用。

白衣非少年
TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊
正如我的問題的評論中所建議的,我最終得到了一個使用“模擬”模塊中的“補(bǔ)丁”的工作解決方案。
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
提交
取消