Mockito ArgumentMatcher disant Arguments sont Différents

Je suis à l'aide de Mockito pour les tests Unitaires et je suis en utilisant ArgumentMatcher pour vérifier si un domaine particulier d'un argument a une valeur particulière.

J'ai un StatusMatcher classe qui étend la classe ArgumentMatcher et vérifie si un objet de la classe Maclasse a une valeur particulière dans le champ de statut. La façon dont je suis l'appel de ce dans les tests est:

verify(myDAO, times(1)).update(argThat(new StatusMatcher("SomeStatus")));

Ici update est la méthode de la DAO qui est appelé avec quelques MyClass objet. Je veux voir si il a le bon état ou pas. C'est ce que j'obtiens:

Argument(s) are different! Wanted:
myDAO.update(
    <Status matcher>
);
-> at com.foo.bar.MyTest.test1 
Actual invocation has different arguments:
myDAO.update(
    com.foo.bar.MyClass
);

Notez que cela fonctionne parfaitement pour tous les cas de tests à l'exception d'un cas de test. Donc je sais que les StatusMatcher etc. ont été codées correctement. Je ne suis pas sûr de ce qui est différent au sujet de la méthode de où se cette exception.

Ce que je veux savoir, c'est: dans quelles conditions le ArgumentMatcher lancer une telle exception afin que je puisse savoir ce que je suis absent (Il n'est pas pour me coller la méthode des codes)
S'il vous plaît dites-moi si l'explication n'est pas assez clair, et je vais essayer de l'améliorer. Merci pour la lecture de ce jour 🙂

EDIT: Voici le code de mon StatusMatcher classe

    private class StatusMatcher extends ArgumentMatcher<MyClass> {

    private String status;
    public StatusMatcher(String hs) { 
        status = hs;
    }

    @Override
    public boolean matches(Object argument) {

        return status.equals(((MyClass)argument).getStatus());
    } 
}
Pouvez-vous fournir le code de StatusMatcher et MyClass?
Le problème semble être dans StatusMatcher. S'il vous plaît montrer.

OriginalL'auteur Mustafa Hussain | 2014-04-08