14

私はユニティで実行中のコードを持っています。

ここで、Moq を使用して ASP-MVC の単体テストを行いたいと考えています。global.asax のコードには、次のものがあります。

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

今私はMoqでテストコードを書きました:

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' から 'Moq.Mock' への暗黙的な参照変換はありません「アイフー」

4

1 に答える 1

20

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

var mock = new Mock<IFoo>();
container.RegisterInstance<IFoo>(mock.Object);
于 2012-09-27T06:27:42.837 に答える