2009-11-22 1 views

ответ

1

Это зависит от того, что вы хотите проверить. Вас беспокоит, вызван ли метод Add(), или вы просто хотите настроить консервированный ответ, который может или не может быть вызван?

Если вы ожидаете звонка: -

var mocks = new MockRepository(); 
var repo = mocks.StrictMock<IRepository>(): 

var myObj = CreateSampleObject(); 

using(mocks.Record()) 
{ 
    Expect.Call(repo.Add(myObj)).Return(myObj); 
} 

using(mocks.Playback()) 
{ 
    var target = CreateTarget(repo); 
    target.DoSomething(myObj); 
} 

Если вы не заботитесь ли это называется или нет, а затем использовать SetUpResult вместо Ожидать, например,

SetUpResult.For(rep.Add(myObj)).Return(myObj); 
2

AdamRalph правильно, но я предпочитаю AAA синтаксис Rhino иронизирует:

// arrange 
var repo = MockRepository.GenerateStub<IRepository>(); 
var myObject = CreateSampleObject(); 
repo.Stub(r => r.Add(myObj)).Return(myObj); 

// act (this assumes that the call to "SomeMethod" on "SomeClass" 
// returns the result of the IRepository.Add). 
var someClass = new SomeClass(repo); 
var result = someClass.SomeMethod(); 

// assert 
Assert.AreSame(myObject, result);