我正在尝试模拟使用ocker.patch.object创建的另一种方法。但是我得到了AttributeError。使用嘲笑者是新手,但还没有看到可以帮助解决这种情况的示例。
尝试了从模拟程序调用方法的不同方式。
在tests / test_unit.py之内
from pytest_mock import mocker
class TestApp:
def setup_method(self):
self.obj = ClassApi()
def test_class_api_method(self, client):
return_value = {'name': 'test'}
mocker.patch.object(self.obj, 'method_to_mock')
mocker.result(return_value)
在项目/服务中
class ClassApi:
def method_to_mock(self, input1):
...
return result
AttributeError:“函数”对象没有属性“补丁”
答案 0 :(得分:0)
我对Pytest-Mock并不超级熟悉,但是基于对文档的了解,您应该使用mocker
作为固定装置。所以您的功能应如下所示:
def test_class_api_method(self, client, mocker):
return_value = {'name': 'test'}
mocker.patch.object(self.obj, 'method_to_mock')
mocker.result(return_value)
pytest在运行时会自动向测试函数提供参数嘲笑者,因此无需导入它。