【发布时间】:2021-03-25 11:42:09
【问题描述】:
我有这样的课,
from external_package.module.sub_module import fun
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
self.z = fun()
def printer(self):
print(f"X : {self.x}, y : {self.y}, z: {self.z}")
我想为这个类编写一个单元测试并模拟 init 方法中发生的函数调用。
我试过这样打补丁,
from external_package.module import sub_module
def test_my_class(mocker):
mocker.patch.object(sub_module, 'fun', return_value="this is mocked")
obj = MyClass(10, 20)
assert obj.z == "this is mocked"
但我可以看到调用没有打补丁,并且在 init 方法中发生了函数调用。
如何使用 pytest-mock 或任何其他模拟包修补调用?
【问题讨论】:
标签: python python-3.x unit-testing