2009-06-26 7 views
0

J'utilise NBehave pour écrire mes histoires et utiliser Rhino Mocks pour simuler les dépendances du (des) Système (s) testé (s).Utilisation de Mocks avec plusieurs scénarios dans NBehave

Cependant, j'ai un problème pour réinitialiser le comportement attendu dans mes fausses dépendances lors du passage d'un scénario à l'autre.

Je veux seulement affirmer que la méthode de sauvegarde sur mon dépôt a été appelé dans deux scénarios:

dependancyRepository.AssertWasCalled(ear => 
    ear.Save(
     Arg<IDependancy>.Is.Equal(dependency) 
    ) 
) 

Mais cela est appelé dans chaque scénario et échoue dans mon deuxième scénario parce que le Rhino Mocks attend qu'il soit appelé juste une fois. Je ne veux pas être obligé d'utiliser des attentes explicites, mais il semblerait que je l'aurai aussi.

Il y a quelques exemples de NBehave avec Rhino Mocks mais je ne peux pas en avoir plusieurs. Et il y en a quelques-uns avec NBehave et plusieurs Scénarios mais pas de faux-semblants.

Quelqu'un d'autre a rencontré ce problème?

Vive

+0

Je ne suis pas sûr de comprendre complètement votre scénario. Si vous appelez AssertWasCalled, il sera lancé si la méthode n'a pas été invoquée. C'est le but de cette méthode, et si vous ne le voulez pas, ne pourriez-vous pas l'appeler? Peut-être y a-t-il des attentes qui sont violées, mais à partir de votre exemple, je ne peux pas voir comment votre variable dependancyRepository a été créée et configurée, donc il est difficile de dire ce qui ne va pas. Peut-être pourriez-vous partager ce code aussi? –

Répondre

0

Si vous ne voulez pas voulez affirmer que .Save (...) a été appelé dans chaque scénario, alors ne pas mettre en place cette attente pour chaque scénario, régler uniquement pour la scénarios où vous attendez qu'il soit appelé.

Si cela ne répond pas à votre question, veuillez clarifier votre question avec plus d'informations; on ne sait pas ce que vous essayez de faire.

0

Effectuez l'appel AssertWasCalled lors de votre clause Then du scénario concerné, et pas dans les autres.

Questions connexes