Я хотел бы смоделировать метод, который находится в init .py, но на самом деле он не работает.
Существует пример, демонстрирующий проблему и то, как я пытался написать модульный тест:
Тестируемый код: src.main.myfile:
from src.main.utils import a_plus_b
def method_under_test():
a_plus_b()
a_plus_b находится в __init__.py в модуле src.main.utils:
def a_plus_b():
print("a + b")
Единица испытания:
import src.main.utils
import unittest
from mock import patch
from src.main.myfile import method_under_test
class my_Test(unittest.TestCase):
def a_plus_b_side_effect():
print("a_plus_b_side_effect")
@patch.object(utils, 'a_plus_b')
def test(self, mock_a_plus_b):
mock_a_plus_b.side_effect = self.a_plus_b_side_effect
method_under_test()
В модуле теста печатается «a + b», а не побочный эффект. Кто-нибудь может мне помочь, что я сделал не так?