#python #mocking #python-unittest #python-mock
#python #издевательство #python-unittest #python-макет
Вопрос:
У меня есть тестовый пример ниже:
class Foo(unittest.TestCase):
@staticmethod
def my_method():
...
def test_01(self):
with patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
test_stuff()
def test_02(self):
with patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
test_stuff()
... ...
def test_10(self):
with patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
test_stuff()
В принципе, я использую Foo.my_method для издевательства method_to_be_mocked
Вышеуказанное работает нормально, но, как вы можете видеть, у меня есть 10 таких тестовых примеров, и я не хочу писать «с patch.object …» десять раз. Поэтому я хочу использовать декоратор и сделать что-то вроде этого:
@patch.object(bar, 'method_to_be_mocked', side_effect=Foo.my_method):
class Foo(unittest.TestCase):
@staticmethod
def my_method():
...
def test_01(self):
test_stuff()
def test_02(self):
test_stuff()
... ...
def test_10(self):
test_stuff()
Но он говорит мне, что Foo
это не определено?
Комментарии:
1. Почему бы вам не определить my_method вне класса?
2. Смоделируйте его в методе установки.