Sto provando a scrivere un test unitario che deve confermare se un metodo viene chiamato o meno. Sto usando JUnit, Mockito e PowerMock.Come verificare se il metodo viene chiamato su Sistema in prova (non un mock)
public class Invoice { protected void createInvoice() { // random stuff here markInvoiceAsBilled("57"); } protected void markInvoiceAsBilled(String code) { // marked as billed } }
Quindi, il mio sistema in prova è Invoice
. Io corro questo test:
public class InvoiceTest { @Test public void testInvoiceMarkedAsBilled() { Invoice sut = new Invoice(); Invoice sutSpy = spy(sut); sut.createInvoice(); // I want to verify that markInvoiceAsBilled() was called } }
Questo esempio è solo un esempio di ciò che il codice vero e proprio sembra ....
mio problema è che Mockito dice che si può verificare solo se il metodo viene chiamato su un oggetto deriso ... ma non voglio prendere in giro questo oggetto, dato che è il mio oggetto in prova. So che si può spiare l'oggetto che si sta testando, ecco quello che ho provato:
verify(sutSpy).markInvoiceAsBilled("57");
è quello che sto cercando di fare non è possibile? O sto solo andando nel modo sbagliato?
Grazie a tutti :)