J'essaie d'écrire un test unitaire qui doit confirmer si une méthode est appelée ou non. J'utilise JUnit, Mockito et PowerMock.
public class Invoice
{
protected void createInvoice()
{
// random stuff here
markInvoiceAsBilled("57");
}
protected void markInvoiceAsBilled(String code)
{
// marked as billed
}
}
Donc, voici mon système en cours de test Invoice
. J'exécute ce 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
}
}
Cet exemple est juste un exemple de ce à quoi le code réel ressemble....
Mon problème est que mockito dit que vous pouvez seulement vérifier si une méthode est appelée sur un objet mocké... mais je ne veux pas mocker cet objet, car c'est mon objet sous test. Je sais que vous pouvez espionner l'objet que vous testez, alors voici ce que j'ai essayé :
verify(sutSpy).markInvoiceAsBilled("57");
Ce que j'essaie de faire n'est-il pas possible ? Ou est-ce que je m'y prends mal ?
Merci à tous :)