2010-12-03 28 views
2

je suis tombé problème:EasyMock attendre à appeler la méthode avec le type de collection de paramètres

expect(dao.save(collectionOfElements)).andReturn(otherCollection); 

Et quand je rejoue alors j'appelle cette méthode DAO avec je reçois

Unexpected method call save(someObj1, someObj2) 
save(someObj1, someObj2): expected: 1, actual: 0 

someObj1 d'appel inattendu est égal à someObj1 de l'appel attendu et les éléments sont même dans le même ordre.

Au début, je résolu ce de cette façon:

expect(dao.save(isA(Collecion.class))).andReturn(otherCollection); 

mais maintenant je dois vérifier que mes appels ne fait classe de service dao.save avec la collection contenant exactement 2 éléments, de sorte que le isA(Collecion.class) ne fonctionne plus.

Comment résoudre ce problème? Que toi.

Répondre

1

Le problème peut être que le premier someObj1 et le second someObj1 ont le même toString (donc semblent identiques) mais ils ne sont pas égaux() == true.

Je vérifierais que les éléments des collections seront égaux pour votre contenu.

+0

Oui, someObj contient la variable de type org.joda.DateTime et cela pose des problèmes car il n'a pas hasCode et équivaut à des méthodes. – vrm