Я пытаюсь проверить значения Data
, которые возвращаются из ASP.NET MVC3 JsonView
, но я не знаю, как.
У меня есть простой веб-сайт 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
является динамическим, я не знаю, как проверить его свойства.
Есть идеи?