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 に答える