Estoy usando mock con Python y me preguntaba cuál de esos dos enfoques es mejor (léase: más pitónico).Burlarse de una clase: Mock() o parche()?
Método uno: Solo crea un objeto falso y úsalo. El código es el siguiente:
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: El uso de parches para crear una maqueta. El código es el siguiente:
@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 aclararme?
Como una persona que nunca han probado ninguno Mock() o parche, siento que la primera versión es más clara y muestra lo que quiere hacer, a pesar de que no tengo ningún conocimiento de la diferencia real No sé si esto es de alguna ayuda o no, pero pensé que podría ser útil transmitir lo que un programador no iniciado podría sentir. –
@MichaelBrennan: Gracias por tu comentario. Es útil de hecho. – Sardathrion