Mockito: de retour de la méthode de la valeur dépend d'autres méthode appelée

Dans mon unité de test, j'ai besoin de simuler un interface entre les différentes méthodes a nextItem() et isEmpty() méthodes:

public interface MyQueue {
    Item nextItem();
    boolean isEmpty();
    //other methods
    ...
}

Mon exigence pour la maquette, c'est que isEmpty() initialement doit retourner false, mais après nextItem() a été appelé isEmpty() doit retourner true. Donc je suis moqueur, une file d'attente avec un seul point.

  1. Quelle est la façon la plus simple à mettre en œuvre ce genre de fantaisie avec mockito?
  2. Puis-je mettre en œuvre exigence supplémentaire: l'appel de nextItem() deuxième, troisième et ainsi de suite entraînera dans un type spécifique d'exception?

P. S. je ne veux pas donner de la mise en œuvre complète de mon interface pour le test, parce que d'autres méthodes, résultant en dur-pour-comprendre et commenté code.

Vous pouvez avoir une variable booléenne que vous pouvez passer à true lorsque vous entrez nextItem()
pouvez-vous suggérer la mise en œuvre qui n'est pas explicite?

OriginalL'auteur pavel_kazlou | 2012-09-29