2011-12-01 10 views

risposta

82

è possibile utilizzare il metodo WhenCalled in questo modo:

myStub 
    .Stub(_ => _.Create(Arg<Invoice>.Is.Anything)) 
    .Return(null) // will be ignored but still the API requires it 
    .WhenCalled(_ => 
    { 
     var invoice = (Invoice)_.Arguments[0]; 
     invoice.Id = 100; 
     _.ReturnValue = invoice; 
    }); 

e quindi è possibile creare il vostro stub come tale:

Invoice invoice = new Invoice { Id = 5 }; 
Invoice result = myStub.Create(invoice); 
// at this stage result = invoice and invoice.Id = 100 
+1

È possibile evitare la chiamata a return() con l'aggiunta di IgnoreArguments() alla fine, penso. – samjudson

+2

@samjudson: Rhino getta ancora un'eccezione, senza ritorno, anche con IgnoreArguments, quindi è necessario ritorno. –