J'utilise mock avec Python et je me demande laquelle de ces deux approches est la meilleure (lire: plus pythonique).
Première méthode : créez simplement un objet simulé et utilisez-le. Le code ressemble à ceci:
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)
Deuxième méthode : utilisez un patch pour créer une maquette. Le code ressemble à ceci:
@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)
Les deux méthodes font la même chose. Je ne suis pas sûr des différences.
Quelqu'un pourrait-il m'éclairer?