2010-09-29 8 views
1

Est-il possible d'attribuer une valeur à un objet simulé. Ex:Définir la propriété pour simuler l'objet jmock

myMockObject = context.mock(MyObject.class); 

myMockObject.setId("someId"); 

Ma méthode que je suis test arrive à la fin, mais à la fin il y a la méthode de validation de cet objet si objet sans id est considéré comme non valide. Y a-t-il autre chose que je puisse faire à ce sujet? Puis-je d'une manière ou d'une autre spécifier ok J'attends cette exception mais j'obtiens quand même le test?

J'ai trouvé ce lien, mais je suis incapable de solution trouvée:

http://www.jmock.org/yoga.html

J'attends logger de lancer une exception de validation avec la chaîne de message, quelqu'un at-il une expérience avec ça avant?

J'ai essayé ceci:

context.checking(new Expectations() { 
      { 

allowing(logger).error(with(exceptionMessage)); 

    } 
     }); 

Remarque un message exceptionMessage est lancée par la méthode de validation qui valide l'objet à la fin de la méthode que je teste.

Répondre

1

Vous devez ajouter une attente qui provoque la méthode fausse pour retourner la valeur que vous attendez:

allowing (myMockObject).getId(); will(returnValue("someId")); 

Cela entraînera getId pour retourner la valeur que vous attendez, et compter puisqu'il utilise l'invocation permettant ne provoquera pas l'échec du test s'il n'est pas appelé.

+0

où vais-je écrire ce code? A l'intérieur 'context.checking (new Expectations() {' ou? Je reçois une erreur de compilation, ne trouve pas de stubs 'La méthode stubs() est indéfinie pour le type myMockObject' +1 pour l'effort – ant

+0

@ c0mrade quelle version de jMock utilisez-vous? – codelark

+0

J'utilise 2.5.1 – ant

Questions connexes