2011-12-01 23 views

Trả lời

82

Bạn có thể sử dụng phương pháp WhenCalled như thế này:

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

và sau đó bạn có thể tạo sơ khai của bạn như vậy:

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

Bạn có thể tránh được những cuộc gọi đến Return() bằng cách thêm IgnoreArguments() cuối cùng tôi nghĩ. – samjudson

+2

@samjudson: Tê giác vẫn ném một ngoại lệ mà không trả lại ngay cả với IgnoreArguments, do đó, Return là cần thiết. –

Các vấn đề liên quan