2011-09-22 10 views
5

私が模擬したい強く型付けされたキャッシングインターフェイスがあるとします。それはこのように、あらゆる種類のオブジェクトを受け取り、それを返します。メソッド呼び出しを総称して模倣する

interface IMyCache 
{ 
    void Add(int key, object obj); 
    T Get<T>(int key); 
} 

は、私はそれに送信するすべてのパラメータの型を模擬しますRhinoMocksスタブを書くことができますか?理想的にはそれだけで次のようになります。

var mock = MockRepository.GenerateStub<IMyCache>(); 
mock.Stub(m => m.Get<T>(1234)).Return(new T()); 

具体的なクラスであることをTを期待していますので、これは動作しませんが、私はそれを汎用化したいと思います。これは可能ですか?

答えて

3

できないと思います。 rhinoモックでテストを書くときは、コンパイラの規則に従う必要があり、ジェネリック型Tを指定しないようにすると、コンパイラは不幸になります。

あなたが複数のテスト、Tのためのさまざまな種類を使用して各間のスタブ・コードを再利用する必要がある場合は、ここで提案されているように、あなたはヘルパーメソッドを行うことができます。Rhino Mocks: How to stub a generic method to catch an anonymous type?

関連する問題