首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pytest mocker patch属性:错误'function‘对象没有属性'patch’

Pytest mocker patch属性:错误'function‘对象没有属性'patch’
EN

Stack Overflow用户
提问于 2019-06-08 14:56:47
回答 1查看 7.2K关注 0票数 4

我正在尝试模拟我使用mocker.patch.object创建的另一个方法。然而,我得到了AttributeError。刚开始使用mocker,但还没有看到可以帮助解决这种情况的示例。

尝试了从mocker调用该方法的不同方式。

在test/test_unit.py中

代码语言:javascript
复制
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)

在项目/服务中

代码语言:javascript
复制
class ClassApi:

       def method_to_mock(self, input1):
         ...
        return result

AttributeError:“function”对象没有属性“”patch“”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-08 15:06:46

我对Pytest-Mock不是很熟悉,但是根据文档,你应该使用mocker作为一种固定物。所以你的函数应该是这样的:

代码语言:javascript
复制
 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在运行时会自动为测试函数提供参数模拟器,因此不需要导入它。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56504222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档