Я пытаюсь выполнить модульное тестирование функции, вызывающей две другие функции изнутри. Похоже, что следующие
class A(BaseClass):
def functionA(self, var_a, var_b):
return self.another_fn_a(var_a).another_fn_b(var_b)
another_fn_a
и another_fn_b
являются частью базового класса, который расширяется этим классом, и возвращают тот же самый класс.
Теперь я пытаюсь чтобы проверить мой functionA
, чтобы увидеть, что он вызывает две другие функции с правильным аргументом. Я могу шпионить за another_fn_a
, но шпион за another_fn_b
, похоже, не работает. Мой тест выглядит следующим образом:
def test_will_funcationA(mocker):
test_obj = ClassA()
spy_a = mocker.spy(test_obj, 'another_fn_a')
spy_b = mocker.spy(test_obj, 'another_fn_b')
test_obj.functionA("var_1", "var_2")
spy_a.assert_called_once_with("var_1")
spy_b.assert_called_once_with("var_2")
Первое утверждение, похоже, работает, однако для второго утверждения я получаю сообщение об ошибке утверждения, в котором говорится, что another_fn_b не был вызван.
Что я здесь делаешь что-то не так?