Я пытаюсь протестировать метод в классе, который использует функцию, импортированную из другого модуля, я хотел бы исправить этот импортированный модуль, чтобы упростить мое тестирование, но я не могу понять это, яперепробовал все пути для патча, но не повезло.
В качестве упрощенного примера скажем, у меня есть такая структура проекта:
В папке Adders у меня есть класс AddFour
и модуль Util
, которые выглядят следующим образом, вы присваиваете AddFour
значение, и оно добавляет четыре к нему из giveFour
метода
# Util.py
def giveFour():
return 4
#AddFour.py
from Adders.Util import giveFour
class AddFour:
def add(self, value):
return value + giveFour()
Затем у меня есть тест, в котором для примера я пытаюсь исправить функцию giveFour
, чтобы вместо этого вернуть 5
Я прочел кое-что, и общее предложение - это исправление, где объектпосмотрел вверх, но я не могу понять это правильно
import unittest
from unittest.mock import patch
from Adders.AddFour import AddFour
class AddFour_Tests(unittest.TestCase):
@patch('Adders.AddFour.giveFour')
def give_five(mock_give):
mock_give.return_value = 5
def test_add_four(self):
test_class = AddFour() # Should now add 5?
result = test_class.add(5)
self.assertEqual(result, 10)
Если это возможно, кто-нибудь может указать мне правильное направление? Я чувствую, что упускаю что-то действительно очевидное