Атрибут исправления Pytest Атрибут: объект «ошибка» не имеет атрибута «исправление» - PullRequest
0 голосов
/ 08 июня 2019

Я пытаюсь смоделировать другой метод, который я создал, используя mocker.patch.object. Однако я получаю AttributeError. Новичок в использовании mocker, но не видел пример, который может помочь с этим условием.

Пробовал разные способы вызова метода из mocker.

в пределах 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: у объекта 'function' нет атрибута 'patch'

1 Ответ

0 голосов
/ 08 июня 2019

Я не очень знаком с 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 автоматически предоставляет средство проверки аргументов тестовой функции при ее запуске, поэтому нет необходимости импортировать ее.

...