1

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

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

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

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

4

2 回答 2

0

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

于 2012-04-04T11:10:31.707 回答
-1

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

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

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

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

如果您的方法对搜索结果的影响比您编写多个单元测试来验证它是否符合预期。

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

于 2012-04-04T11:47:08.290 回答