Je tente d'écrire des tests unitaires en utilisant EasyMock et TestNG et j'ai rencontré une question. Compte tenu de ce qui suit:Valeur de test de test avec EasyMock
void execute(Foo f) {
Bar b = new Bar()
b.setId(123);
f.setBar(b);
}
Je suis en train de vérifier que l'ID de la barre se prépare en conséquence de la façon suivante:
@Test
void test_execute() {
Foo f = EasyMock.createMock(Foo.class);
execute(f);
Bar b = ?; // not sure what to do here
f.setBar(b);
f.expectLastCall();
}
Dans mon test, je ne peux pas simplement appeler f.getBar()
et inspecter son ID car f
est un objet fantaisie. Des pensées? Est-ce là où je voudrais regarder les additions EasyMock v2.5 andDelegateTo()
et andStubDelegateTo()
?
Oh, et juste pour l'enregistrement ... la documentation de EasyMock souffle.
Je crois que si vous créez la même barre, cela fonctionnerait. Pourquoi n'essaies-tu pas? –
Je crois comprendre que cette approche s'appuierait sur l'implémentation de Bar.equals() plutôt que sur l'implémentation de ma méthode execute(). Bien que je pense que cela fonctionnerait, il semble qu'il y ait une meilleure façon. – fmpdmb
oui, vous affirmeriez que l'instance de barre transmise à la maquette est égale à celle que vous attendez. Si votre méthode 'equals()' de Bar n'est pas suffisante pour satisfaire ce que vous voulez tester, ou si vous testez plus de champs que vous ne le souhaitez dans votre test, capture est une meilleure option (bien que cela soulève la question de Bar. égal à() n'est pas suffisant). –