【发布时间】:2014-04-16 08:45:48
【问题描述】:
我是单元测试和模拟框架的新手。
我想测试一个从数据库中检索数据并作为列表返回的方法
public virtual List<TemplateClass> GetTemplateist()
{
//this is dummy implementation
return _templatelist;
}
这里我想通过mock框架测试
而我的测试是这样的。
[SetUp]
public void TemplateListServiceTestSetUp()
{
objlsttemplateList = new List<TemplateClass>();
TemplateClass objtemplateclass = new TemplateClass ();
objlsttemplateList .Add(objtemplateclass);
mock = new Mock<TemplateClassService>();
mock.Setup(x => x.GetTemplatelist()).Returns(objlsttemplateList);
}
[Test]
public void TemplateListServiceTest()
{
TemplateClassService obj = mock.Object;
var lst= obj.GetTemplatelist();
}
this obj.GetTemplatelist(); 为空。
我对这个result.Result 是正确还是错误感到困惑? .
这是我真正测试GetTemplateList()的方式吗?
请建议我如何测试这样的方法。 提前致谢。
【问题讨论】:
-
如果您使用数据库交互,您需要展示的不仅仅是“虚拟”实现。您要模拟的是数据库交互,而不是测试的目标。
-
嗨,你能发布一些例子吗?在我们的 GetTemplateList() 中,我调用了数据库,然后从测试设置中基本上我们模拟了该方法。我无法理解我将在哪里模拟数据库打电话。
标签: c# unit-testing mocking