Ich verwende Mock mit Python und habe mich gefragt, welcher dieser beiden Ansätze besser ist (sprich: mehr Python).
Methode eins : Erstellen Sie einfach ein Scheinobjekt und verwenden Sie dieses. Der Code sieht aus wie:
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)
Methode zwei : Verwenden Sie Patch, um ein Modell zu erstellen. Der Code sieht aus wie:
@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)
Beide Methoden machen dasselbe. Ich bin mir der Unterschiede nicht sicher.
Könnte mich jemand aufklären?