Я использую макет с Python, и мне было интересно, какой из этих двух подходов лучше (читайте: больше pythonic).
Метод первый : просто создайте фиктивный объект и используйте его. Код выглядит так:
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)
Оба метода делают одно и то же. Я не уверен в различиях.
Может ли кто-нибудь просветить меня?