Sto imparando come viene eseguito il test in Python utilizzando py.test
. Sto provando a testare una situazione specifica che è abbastanza comune quando si usano altre librerie come mock
. In particolare, verifica che una funzione o un metodo invochi un altro callable con gli argomenti corretti. Non è necessario alcun valore di ritorno, solo una conferma che il metodo in prova effettua correttamente la chiamata.Come testare la funzione viene chiamata con gli argomenti corretti con pytest?
Ecco un esempio direttamente dalla docs:
>>> class ProductionClass:
... def method(self):
... self.something(1, 2, 3)
... def something(self, a, b, c):
... pass
...
>>> real = ProductionClass()
>>> real.something = MagicMock()
>>> real.method()
>>> real.something.assert_called_once_with(1, 2, 3)
E 'possibile farlo utilizzando monkeypatch
o fixtures
da py.test
, senza scrivere in modo efficace la mia stessa classe deriso? Ho cercato questo caso d'uso specifico, ma non ho trovato un esempio. py.test
incoraggia un modo alternativo di esercitare un codice come questo?
Strano che tale funzionalità di base per il test dell'unità non sia immediata. –