Sto usando mock con Python e mi chiedevo quale di questi due approcci sia migliore (leggi: più pitonico).
Metodo uno : crea semplicemente un oggetto fittizio e usalo. Il codice ha questo aspetto:
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)
Metodo due : usa la patch per creare un mock. Il codice ha questo aspetto:
@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)
Entrambi i metodi fanno la stessa cosa. Non sono sicuro delle differenze.
Qualcuno potrebbe illuminarmi?