0

在我的界面中

public IMyListInterface : IList<IMyItem> { void Foo(); }

如何轻松创建一个示例来测试使用 IMyListInterface 的类。

目前我正在使用GenerateStub<MyListInterface>()并将所需的方法/属性委托给一个List<IMyItem>列表,但这很乏味。

目前要使以下正在测试的代码正常工作

foreach (var match in matchList)

我在我的测试课上做以下事情

IList<IMyItem> baseList = new List<IMyItem>();
IMyListInterface matchList = MockRepository.GenerateStub<IMyListInterface>();

matchList.Stub(m => m.GetEnumerator()).Return(null).WhenCalled(i => i.ReturnValue = baseList.GetEnumerator());

有没有更好的办法?

4

1 回答 1

0

在抽象基类中实现接口以进行测试:

public abstract MyMockableList : List<MyItem>, IMyListInterface
{
    public abstract void Foo();
}

然后你可以使用MockRepository.GenerateStub<MyMockableList>(),它将作为一个普通的列表(RhinoMocks 不会覆盖从 继承的方法List<MyItem>),但你仍然可以存根该Foo()方法。

于 2013-01-18T10:00:38.747 回答