我正在使用RhinoMock进行单元测试,我想知道如何设置它,以便特定方法始终返回它作为参数接收的同一对象。
这是我想要模拟的界面:
public interface IItemRepository
{
Item Craete(Item item);
}
我想以这样的方式设置RhinoMocks:每次调用Create方法时,模拟的存根将返回作为参数传递的同一对象。
这是我的测试初始化方法:
[TestInitialize]
public void CrateServiceWithMockRepository()
{
var stubRepository = MockRepository.GenerateStub<IItemRepository>();
// ... how to set-up the stubRepository as described above ...
// Create the target service for this unit test
this.targetService = new ServiceXYZ(stubRepository);
}
答案 0 :(得分:2)
您可以使用Do
并在调用方法时传递委托来执行:
stubRepository.Stub(r => r.Create(null)).IgnoreArguments()
.Do(new Func<Item, Item>(item => item));