こんにちは、Unity IoC コンテナーと Moq を使用しているときに単体テストを少し行うために、テスト プロジェクトをセットアップしようとしています。
Unity でタイプを登録しようとすると、エラーが発生するようです。これが私のコードです。
public static class SetupMockObjects
{
public static IProductRepository GetProductRepository() {
Mock<IProductRepository> productRepository = new Mock<IProductRepository>();
productRepository.Setup(m => m.Products).Returns(new List<Product> {
new Product { Name = "Football" , Price = 25 },
new Product { Name = "Surf board" , Price = 179 },
new Product { Name = "Running shoes" , Price = 95 }
});
return productRepository.Object;
}
}
public static void Initialise()
{
var container = BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
}
private static IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
container.RegisterType<IProductRepository , SetupMockObjects.GetProductRepository()>();
return container;
}
ここでモック オブジェクトを作成しているのは、データ アクセス レイヤーを作成したくないという理由だけで、モック オブジェクトを作成するだけの方が簡単だと考えたからです。
問題は、タイプを登録しようとすると BuildUnityContainer() メソッド内にあり、次のエラーが発生します。
Error 1 Invalid expression term ','
Error 2 ; expected
Error 3 ; expected
Error 4 Invalid expression term ')'
Error 5 ) expected
正しい汎用パラメーターを使用して RegisterType を呼び出していると確信しているため、これらのエラーがスローされる理由がわかりません。どこで間違いを犯しましたか?