如何告诉RhinoMocks返回作为参数传递的同一对象

时间:2013-05-02 17:24:52

标签: c# unit-testing rhino-mocks

我正在使用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);
}

1 个答案:

答案 0 :(得分:2)

您可以使用Do并在调用方法时传递委托来执行:

stubRepository.Stub(r => r.Create(null)).IgnoreArguments()
    .Do(new Func<Item, Item>(item => item));