Я пытаюсь проверить значения Data
, возвращаемые с ASP.NET MVC3 JsonView
, но я не уверен, как это сделать.
У меня есть простой веб-сайт ASP.NET MVC3 с методом действий, который возвращает JsonView.
например (некоторый код pseduo для списка анонимных типов):
var lotsOfFail = database.GetMeThatDamnDataList();
var returnData = (from x in lotsOfFail
select new
{
Id = x.Id,
Name = x.Name
..
}).ToList();
return Json(returnData, JsonRequestBehavior.AllowGet);
Теперь в моем unit test, я пытаюсь проверить значения 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
является динамическим, я не знаю, как проверить его свойства.
Любые идеи?