繁体   English   中英

在 MVC.NET 中单元测试 json 搜索结果

[英]Unit testing json search results in MVC.NET

我正在尝试测试一种返回 Json 编码项目列表的方法,这些项目是针对大型数据集的搜索结果:

public JsonResult()
{
     List<Stuff> myStuff = new List<Stuff>();
     ListItem item = new ListItem();
     mystuff.Add(item);
     return Json(myStuff, JsonRequestBehaviour.AllowGet);
}

我的问题是我只知道返回列表中的第一项 - 并且根据搜索每次都可以生成不同的列表。

目前我正在尝试通过简单地将返回的第一项与“正确”值进行比较来测试它,但我认为这不像我希望的那样可靠(例如我想测试大多数下一个可能的结果等)。 以前有人遇到过类似的问题吗?

通过单元测试,您需要可预测的结果。 覆盖 JsonResult() function 以始终返回相同的结果(如果它是您正在测试的其他函数),或者使用单独的 url 进行测试,以便 json 结果始终相同。 然后你可以有多个 json 结果,每个结果都针对测试调用 function 中的不同功能/错误。

当单元测试 scope 时,您测试的只是您正在测试的特定方法的功能。

您的单元测试不会测试您为其编写测试的方法如何获取数据。 它想要测试的只是该方法是否按照它假设的方式处理数据。

如果您的方法只是返回一个搜索结果,那么您所测试的就是如果您执行该方法会返回一些搜索结果。

在这种情况下,您准备好要返回的数据,并告诉搜索方法的模拟实例在单元测试期间执行您的方法时返回它。

如果您的方法对搜索结果的影响大于您编写多个单元测试以验证它是否按预期进行。

如果您想测试您的层之间是否正确通信以及数据是否正确地从数据库返回,您可以编写集成测试,而不是单元测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM