Jak*_*son 9 nunit castle-windsor moq
我正在尝试建立一些Moq存储库,以测试我的服务与Castle Windsor作为我的IOC.Mu服务依赖于IFoo,所以我创建了一个实现IFoo的moq实例并将其注入容器中,如下所示:
_container.AddComponent("AutoBill",
typeof (AutoBillService), typeof (AutoBillService));
var mockUserRepository = new Mock<IUserRepository>();
var testUser = new User()
{
FirstName = "TestFirst",
LastName = "TestLast",
UID=1
};
mockUserRepository.Setup(repo => repo.GetUser(testUser.UID))
.Returns(testUser);
_container.Kernel.AddComponentInstance("UserRepository",
typeof(IUserRepository), mockUserRepository);
var service = _container.Resolve<AutoBillService>(); //FAIL
Run Code Online (Sandbox Code Playgroud)
这样做会给我一个例外:System.ArgumentException:'Moq.Mock`1 [IUserRepository]'类型的对象无法转换为'IUserRepository'类型
谁能看到我做错了什么?
Mar*_*ann 12
你应该通过mockUserRepository.Object而不是mockUserRepository.
如果您使用强类型API,这将更加明显:
_container.Register(Component
.For<IUserRepository>()
.Instance(mockUserRepository.Object));
Run Code Online (Sandbox Code Playgroud)
这是编译因为Object属性实现了IUserRepository.
| 归档时间: |
|
| 查看次数: |
2849 次 |
| 最近记录: |