Frage

Ich habe ein Szenario wie folgt aus:

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

Der Mediator ist das reale Objekt unter Test und muss in der Lage sein, Werte zu setzen für das „Form“ Objekt.

Aber der einzige Weg, ich sehe Wert für das Formularobjekt zu setzen, ist wie folgt:

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

Ich will nicht, dass in meinem echten Code zu tun.

Fehle ich den Punkt des Mocks?

War es hilfreich?

Lösung

Stubs zur Unterstützung gebaut für Immobilien Verhalten. In Fällen, in denen Sie sich nicht mit Stubs sind, können Sie die PropertyBehaviour () Verfahren für einen ähnlichen Effekt.

Im Rahmen des Mediators, sollten Sie das form Objekt verwenden normalerweise - es soll nicht wissen, dass es eine Fälschung Objekt übergeben wurde.

Mit diesem Code:

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

sollte nicht in Ihrem realen Objekt sein, kann aber sein, einen Teil Ihres Test einzurichten, die Erwartungen für wie Sie Ihr Mock-Objekt verwendet werden.

Edit:

Von dem, was Sie zur Verfügung gestellt haben, kann ich nicht beurteilen, ob Sie „den Punkt des Mocks fehlen“. Der wesentliche Zweck ist es, eine Möglichkeit zu bieten, den Code zu testen, die Abhängigkeiten isoliert von diesen Abhängigkeiten hat. Werfen Sie einen Blick auf Martin Fowler Essay " Mocks sind nicht Stubs ", und die Verwendung Abteilung Ausrichtung der Rhino Mocks Dokumentation .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top