嗨,我正在尝试建立一个测试项目,以便在使用 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 这就是为什么我不明白为什么会抛出这些错误。我在哪里犯了错误?