Издевательство над классом: Mock() или patch()?Python

Программы на Python
Ответить
Anonymous
 Издевательство над классом: Mock() или patch()?

Сообщение Anonymous »

Я использую макет с Python, и мне интересно, какой из этих двух подходов лучше (читай: более питонический).
Метод первый: просто создайте издевайтесь над объектом и используйте его. Код выглядит так:

Код: Выделить всё

def test_one (self):
mock = Mock()
mock.method.return_value = True

# This should call mock.method and check the result.
self.sut.something(mock)

self.assertTrue(mock.method.called)
Метод второй: используйте патч для создания макета. Код выглядит так:

Код: Выделить всё

@patch("MyClass")
def test_two (self, mock):
instance = mock.return_value
instance.method.return_value = True

# This should call mock.method and check the result.
self.sut.something(instance)

self.assertTrue(instance.method.called)
Оба метода делают одно и то же. Я не уверен в различиях.
Может ли кто-нибудь меня просветить?

Подробнее здесь: https://stackoverflow.com/questions/818 ... k-or-patch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»