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

本文关键字:json 搜索结果 单元测试 NET MVC | 更新日期: 2023-09-27 18:29:54

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

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

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

目前,我正试图通过简单地将返回的第一个项目与"正确"值进行比较来测试它,但我认为这并不像我希望的那样稳健(例如,我想接下来测试最有可能的结果等)。以前有人有类似的问题吗?

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

使用单元测试,您需要可预测的结果。如果要测试的是其他函数,请重写JsonResult()函数以始终返回相同的结果,或者使用单独的url进行测试,以便json结果始终相同。然后,您可以得到多个json结果,每个结果都用于测试调用函数中的不同特性/错误。

单元测试时,测试的范围仅为正在测试的特定方法的功能。

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

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

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

如果你的方法对搜索结果的影响比你写几个单元测试来验证它的预期要大。

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