【发布时间】:2013-07-11 14:48:15
【问题描述】:
我正在尝试让这个用例为我工作:
我有一个存储库类:ABCRepository
它有一个虚拟方法GetMyValues()
一个模型类:ABCModel,有一个方法ABCToTest()。
在这个ABCToTest() 中,我正在尝试使用Ninject 访问ABCRepository:
var repo = kernel.Get<ABCRepository>();
//further using repository method
var results = repo.GetMyValues();
现在,我正在使用以下代码为 ABCToTest() 创建 Unittest 并模拟 GetMyValues() 方法:
var kernel = new MoqMockingKernel();
kernel.Bind<ABCRepository>().ToMock();
kernel.Bind<ABCModel>().ToMock();
var abcRepo= kernel.GetMock<ABCRepository>();
abcRepo.Setup(repo => repo.GetMyValues()).Returns("ABC");
//This is a static method I am using to initialize the kernel object, ABCToTest() method is using.
MvcApplication.InitializeInjection(kernel);
var model= kernel.GetMock<ABCModel>().Object;
model.ABCToTest("177737");
当我尝试调试/运行测试时,我可以看到,ABCTotTest 内部的GetMyValues() 方法调用没有返回“ABC”,而是返回NULL。
我对这个实现有什么问题?任何建议和指针都非常感谢..
感谢和问候 苏梅特
【问题讨论】:
标签: c# asp.net-mvc-4 ninject moq xunit