Ich möchte bestätigen, dass eine Methode genau einmal aufgerufen wird. Ich benutze RhinoMocks 3.5.Asserting, dass eine Methode genau einmal aufgerufen wird
Hier ist, was ich dachte funktionieren würde:
[Test]
public void just_once()
{
var key = "id_of_something";
var source = MockRepository.GenerateStub<ISomeDataSource>();
source.Expect(x => x.GetSomethingThatTakesALotOfResources(key))
.Return(new Something())
.Repeat.Once();
var client = new Client(soure);
// the first call I expect the client to use the source
client.GetMeMyThing(key);
// the second call the result should be cached
// and source is not used
client.GetMeMyThing(key);
}
ich diesen Test, wenn der zweite Aufruf von GetMeMyThing()
Anrufe source.GetSomethingThatTakesALotOfResources()
scheitern wollen.
+1 für die Verwendung von 'using (mocks.Record()) {..} Es erhöht die Lesbarkeit sehr. –
-1 Dies funktioniert nicht. Es wird keine Ausnahme ausgelöst, wenn GetSomethingThatTakesALotOfResources mehr als einmal aufgerufen wird. – Ergwun
Ich bin mir ziemlich sicher, dass das zu der Zeit funktionierte, als ich das vor 2 Jahren schrieb. Ich werde den Beitrag aktualisieren, um die neue Vorgehensweise zu integrieren. –