Получение значения функции класса, имитируемого в Python

Я пишу unittest скрипта python, используя макет и патч, где я издевался над классом.

class Class:
    def function():
        return 'something'

@patch('Class')
def test(MockClass):
    item = MockClass()
    self.assertEqual(item.function(), 'something)

Когда вызывается item.function, он возвращает объект. Если я назову его с помощью item.function.return_value, он вернет

Есть идеи, как получить фактическое значение, которое должно возвращать item.function ()?

отформатируйте код для видимости чтения!

Raady 07.06.2018 13:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
43
1

Ответы 1

на самом деле это похоже на пример из официальные документы

from unittest.mock import patch

class Class():
    def function(self):
        return 'something'

@patch('__main__.Class')
def test(MockClass):
    item = MockClass()
    item.function.return_value = 'something' 
    assert item.function() == 'something' 

test()

Другие вопросы по теме