2009-08-25 15 views
5

J'utilise NUnit se moque et je voudrais préciser que j'attends un appel, mais sans dire ce que les arguments seront par exemple:Existe-t-il un moyen de spécifier N'IMPORTE QUEL comme argument à l'appel de NUnit Mocks Expect?

mock.ExpectAndReturn("Equals", true, ANY_ARGUMENT); 

remplissage Il est évident que dans la syntaxe correcte au lieu de ANY_ARGUMENT.

Existe-t-il un moyen de le faire?

Si je spécifie aucun argument - NUnit échoue le test parce qu'il attend 0 arguments, mais a reçu 1.

+0

toute mise à jour sur ce sujet? – yeyeyerman

Répondre

2

En regardant la version 2.5.2 de nunit.mocks.dll dans le réflecteur, il ne semble pas qu'il y ait une méthode qui fait ce que vous cherchez. NUnit est open source, donc une option est d'obtenir le code et d'ajouter la fonctionnalité.

0

Vous pouvez implémenter une nouvelle instance de IResolveConstraint qui accepte tout et l'utiliser comme paramètre dans votre test. NUnit traite les instances de IResolveConstraint différemment de tout autre objet, en utilisant Assert.That, au lieu de Assert.AreEqual pour vérifier son exactitude.

Par exemple.

myMock.ExpectAndReturn ("mockedMethod", argument1, nouvelle AcceptsAnythingConstraint())

1

Avez-vous essayé:

mock.SetReturnValue(true); 
mock.Expect("Equals"); 
2

Oui il y a une telle fonction dans NUnit Mocks.

Au lieu de ExpectAndReturn, utilisez SetReturnValue. Première fonction, comme son nom l'indique, vous spécifiez l'objet d'entrée et l'objet de retour. La dernière fonction spécifie juste un objet de retour pour la fonction spécifique.

Utilisation: interfaceMock.SetReturnValue("SomeRetrunFunction", someReturnFunction);