Mockear una clase: Mock () o patch ()?
Estoy usandoburlarse d con Python y me preguntaba cuál de esos dos enfoques es mejor (léase: más pitónico).
Método uno: Simplemente crea un objeto simulado y úsalo. El código se ve así:
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)
Método dos: Usa el parche para crear un simulacro. El código se ve así:
@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)
Ambos métodos hacen lo mismo. No estoy seguro de las diferencias.
¿Alguien podría iluminarme?