[英]Unit testing mock method
我是单元测试和模拟框架的新手。
我想测试一种从数据库检索数据并作为列表返回的方法
public virtual List<TemplateClass> GetTemplateist()
{
//this is dummy implementation
return _templatelist;
}
在这里我想通过模拟框架进行测试
我的测试就是这样
[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
感到困惑。 result.Result
是正确还是错误? 。 这是我真正测试GetTemplateList()
的方式GetTemplateList()
?
请建议我如何测试这种方法。 提前致谢。
模拟框架的目的是为要测试的代码提供依赖项的实现,以便您可以隔离正在测试的代码。
在您的示例中,GetTemplateList()方法没有依赖关系,并且大概TemplateClassService类也没有依赖关系,因此没有必要进行模拟。 您可以直接按原样调用该方法以对其进行测试,然后断言您已收到预期的结果。
当用从数据库检索数据的实际代码替换虚拟实现时,将需要模拟框架。 到那时,您可能会注入一个Repository接口或类似的东西来处理数据库调用。 然后将需要对此进行模拟,以便您实际上不必具有数据库连接即可测试您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.