2012-09-27 17 views
10

私は1つの実行コードを持っています。MoqでUnity.RegisterTypeを使用するには?

今、Moqを使用してASP-MVCの単体テストを行いたいと思います。 Global.asaxのコードの中 、私は次のようしている:

IUnityContainer container = new UnityContainer(); 
container.RegisterType<IFoo, Foo>(new InjectionConstructor("xxx")); 

は今、私は部品番号でtestcodeを書いた:

IUnityContainer container = new UnityContainer(); 
var mockFoo = new Mock<IFoo>(); 

container.RegisterType<IFoo, mockFoo) >(new InjectionConstructor("xxx"));

が、これは動作しません。

エラー: 型「Moq.Mockは」ジェネリック型またはメソッド 「Microsoft.Practices.Unity.UnityContainerExtensions.RegisterTypeタイプパラメータ「TTO」として使用することはできません... 暗黙の参照変換はありません「Moq.Mock」から「IFoo」

答えて

13

模擬オブジェクトではなく、模擬オブジェクトを登録しようとしています。

var mock = new Mock<IFoo>(); 
container.RegisterInstance<IFoo>(mock.Object); 
+0

ありがとう – boqus

関連する問題