【发布时间】:2011-12-19 06:07:36
【问题描述】:
我正在尝试测试从 ASP.NET MVC3 JsonView 返回的 Data 值,但我不确定如何。
我有一个简单的 ASP.NET MVC3 网站,有一个返回 JsonView 的操作方法。
例如(一些伪代码用于匿名类型列表):
var lotsOfFail = database.GetMeThatDamnDataList();
var returnData = (from x in lotsOfFail
select new
{
Id = x.Id,
Name = x.Name
..
}).ToList();
return Json(returnData, JsonRequestBehavior.AllowGet);
现在在我的单元测试中,我正在尝试测试Data 的值。
因此,根据各种建议,我正在执行以下操作.. - 确实有效:-
// Act.
JsonResult jsonResult = controller.PewPewKThxBai(null, null);
// Assert.
Assert.IsNotNull(jsonResult);
dynamic data = jsonResult.Data;
Assert.IsNotNull(data);
Assert.IsTrue(data.Count >= 0);
但我也希望根据固定的数据列表来测试返回的前三个结果。
注意我有以下代码:var lotsOfFail = database.GetMeThatDamnDataList();
嗯,数据库 填充了一些硬编码数据和一些随机数据。前三个记录是硬编码的。
因此,我希望确保我可以测试我的硬编码数据。
像这样……
// Assert.
Assert.IsNotNull(jsonResult);
dynamic data = jsonResult.Data;
Assert.IsNotNull(data);
var hardCodedData =
FakeWhatevers.CreateHardcodedWhatevers()
.Where(x => x.EventType == EventType.BannableViolation)
.ToList();
Assert.IsTrue(data.Count >= hardCodedData .Count);
for (int i = 0; i < hardCodedData .Count; i++)
{
Assert.AreEqual(data[0].Id== hardCodedData [0].GameServerId);
}
但是因为data是动态的,所以我不知道如何测试它的属性。
有什么想法吗?
【问题讨论】:
标签: c# .net asp.net-mvc unit-testing