2009-08-18 12 views
2

J'ai un scénario comme celui-ci:Comment définir une valeur pour un objet Rhino Mocked?

form = MockRepository.GenerateMock<IAddAddressForm>(); 
mediator = new AddAddressMediator(form); 

Le médiateur est l'objet réel en cours de test et doit être en mesure de définir des valeurs pour l'objet « forme ».

Mais la seule façon que je peux voir pour définir des valeurs pour l'objet de formulaire est comme ceci:

form.Stub(x=>x.FirstName).Return(item.FirstName) 

Je ne veux pas faire ça dans mon code réel.

Ai-je manqué le point de mocks?

Répondre

1

Stubs prennent en charge le comportement des propriétés. Dans les cas où vous n'utilisez pas de talons, vous pouvez utiliser la méthode PropertyBehaviour() pour un effet similaire.

Dans le médiateur, vous devez normalement utiliser l'objet form - il ne doit pas savoir qu'il a reçu un faux objet.

Ce code:

form.Stub(x=>x.FirstName).Return(item.FirstName) 

ne devrait pas être dans votre objet réel, mais peut faire partie de votre essai pour mettre en place les attentes de la façon dont vous utiliserez votre objet fantaisie.

Edit:

D'après ce que vous avez fourni, je ne peux pas juger si vous « manque le point de se moque ». L'objectif essentiel est de fournir un moyen de tester le code qui a des dépendances isolées de ces dépendances. Jetez un oeil à l'essai de Martin Fowler "Mocks Aren't Stubs", et la section d'orientation d'utilisation du Rhino Mocks documentation.

+0

Douce Réponse! Merci beaucoup (je voudrais pouvoir vous voter deux fois!) – Vaccano

+0

haha ​​acclamations :) heureux d'être de service ... –