【发布时间】:2013-07-09 11:54:44
【问题描述】:
我使用 .net mvc3 构建简单的应用程序。我写了几个测试用例,其中一个有问题。我使用 Moq 来模拟我的域服务,我有这两种方法:
List<Customer> customersRepo =
{
new Customer{
Id = 0,
Name = "Jojo"
},
new Customer{
Id = 1,
Name = "John"
}
}
mock.Setup(m => m.GetByName(IsAny<string>())).Returns<string>(
n =>
customersRepo.Where(c => c.Name == n)
);
mock.Setup(m => m.GetById(IsAny<int>())).Returns<int>(
n=>
customersRepo.Where(c => c.Id == n)
);
问题是,当我使用模拟对象的方法按名称获取客户时,我得到了我要求的那个,但是当我尝试按 id 获取时,我总是从模拟对象中得到空对象。我都尝试了id 0 和 1.. 可能是什么问题?
谢谢
【问题讨论】:
-
我无法相信这些设置中的任何一个都能按预期工作。两种设置都返回一个
IEnumerable<Customer>,但一个说它返回一个string,另一个说它返回一个int。两者都不是IEnumerable<Customer>。
标签: .net unit-testing moq