Я використовую макет з Python і цікавився, який із цих двох підходів кращий (читайте: більш пітонічний).
Перший спосіб : Просто створіть макетний об’єкт і скористайтеся цим. Код виглядає так:
def test_one (self):
mock = Mock()
mock.method.return_value = True
self.sut.something(mock) # This should called mock.method and checks the result.
self.assertTrue(mock.method.called)
Спосіб другий : використовуйте патч для створення макету. Код виглядає так:
@patch("MyClass")
def test_two (self, mock):
instance = mock.return_value
instance.method.return_value = True
self.sut.something(instance) # This should called mock.method and checks the result.
self.assertTrue(instance.method.called)
Обидва методи роблять те саме. Я не впевнений у відмінностях.
Може хтось мене просвітить?