Próbuję napisać test jednostkowy, który musi potwierdzić, czy metoda jest wywoływana, czy nie. Używam JUnit, Mockito i PowerMock.Jak sprawdzić, czy metoda jest wywoływana w testowanym systemie (nie próbna)
public class Invoice { protected void createInvoice() { // random stuff here markInvoiceAsBilled("57"); } protected void markInvoiceAsBilled(String code) { // marked as billed } }
A zatem mój testowany system to Invoice
. Używam tego testu:
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 } }
Ten przykład jest tylko przykładem tego, co rzeczywiste kod wygląda ....
Moim problemem jest to, że Mockito mówi można tylko sprawdzić, czy metoda jest wywoływana na szyderczym obiekcie ... ale nie chcę kpić z tego obiektu, ponieważ jest to mój obiekt poddawany próbie. Wiem, że można szpiegować obiektu jesteś testowania, więc oto co próbowałem:
verify(sutSpy).markInvoiceAsBilled("57");
Czy to, co staram się robić nie możliwe? Czy po prostu podchodzę do tego w niewłaściwy sposób?
Dzięki wszystkim :)