Mit dem neuen Rhino Mocks 3.5 Anordnen/Act/Assert (AAA) Teststil, habe ich Probleme beim Schreiben eines Tests.Verwenden von Rhino Mocks Wie kann ich eine Eigenschaft eines Parameters für eine Mocked-Methode festlegen
Ich habe eine Methode, die eine Methode für eine Repository-Klasse aufruft. ActivateFoo, wo mein Foo-Objekt eine IsActive-Eigenschaft hat. Das Ergebnis des ActivateFoo-Objekts sollte die Eigenschaft ändern. Hier
ist Beispielcode: "ActivateFoo (foo))"
[TestMethod]
public void Should_update_foo_to_active_inside_of_repository()
{
// arrange
var repo = MockRepository.GenerateMock<IRepository>();
var foo = new Foo() { ID = 1, IsActive = false };
var target = new Presenter(repo);
repo.Expect(x => x.ActivateFoo(foo)).Return(true);
// act
target.Activate(foo);
// assert
Assert.IsTrue(foo.IsActive);
repo.VerifyAllExpectations();
}
Ich vermute, dass der Schlüssel Stück Code dazwischen wäre und "Zurück (wahr);".
Ein Punkt, um zu klären, wie die Methode Verkettung funktioniert hinter den Kulissen, Wenn es Code in der Zeile, die ich erwarte, ist es wichtig, ob es nach Return() oder vorher ist? (es sei denn, die Lösung nutzt die MethodOptions-Überladung von Expect oder etwas anderes).
Vielen Dank im Voraus für jede Hilfe.
Bitte klären Sie die Struktur und die Beziehung Ihrer Klassen. Die Beziehung zwischen Foo & Presenter ist aus deinem Beispiel nicht ganz klar. Erweitere auch ActivateFoo (foo) & Activate (foo) im Presenter. – abhilash