Affirmer qu'une méthode est appelée exactement une fois

Je tiens à affirmer qu'une méthode est appelée exactement une fois. Je suis en utilisant RhinoMocks 3.5.

Voici ce que j'ai pensé de travail:

[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);
}

Je veux ce test échoue si la deuxième invocation de GetMeMyThing() appels source.GetSomethingThatTakesALotOfResources().

  • La seule chose de mal avec le ci-dessus sont l'utilisation de GenerateStub au lieu de GenerateMock et manquant de cette dernière ligne: le client.VerifyAllExpectations();
  • ...J'ai édité les accepté de répondre...