2010-07-19 10 views
1

Parfois, Rhino.Mocks me rend fou, car il n'y a pas assez de documentation sur des sujets qui, je suppose, sont relativement faciles.RhinoMocks attend un appel avec la valeur exacte

Ce que je veux faire est d'attendre appel à AddContact ("test", contact). Donc, pour le second paramètre, je dois utiliser la contrainte de paramètre Property.AllPropertiesMatch (contact). Mais que dois-je utiliser pour le premier?

_contactManagerMock 
    .Expect(m => m.AddContact(null, null)) 
    .Constraints(??????????, Property.AllPropertiesMatch(contact)); 

Au lieu de "??????????"

Répondre

1

Je cherchais aussi ceci, voici une réponse plus détaillée.

Voici un exemple d'utilisation de AllPropertyMatch dans Rhino.Mocks. J'ai testé cela dans Rhino.Mocks 3.6.

//arrange 
var contactManagerMock = MockRepository.GenerateMock<IManager>(); 
contactManagerMock.Expect(m => m.AddContact(
    Arg.Is("test"), 
    Arg<Contact>.Matches(Property.AllPropertiesMatch(contact)))) 

//Act 
//Perform action here that should result in the above expected call 

//Assert 
contactManagerMock.VerifyAllExpectations(); 

Cela indique que la méthode AddContact doit être appelée. Le premier paramètre devrait être une chaîne avec la valeur 'test', le second devrait être un objet de type Contact qui a toutes les mêmes propriétés que l'instance de contact. L'appel de VerifyAllExpectations effectue l'assertion.

Plus d'infos sur le site Rhino.Mocks.