У меня есть метод контроллера, который возвращает JsonResult следующим образом:
public ActionResult GetZipByState(string stateId)
{
var result =
_mediator.Send<List<ZipCodeModel>>(new ZipCodeByStateQuery()
{
StateId = stateId
});
return Json(new { ZipCodes = result }, JsonRequestBehavior.AllowGet);
}
Затем у меня есть этот модульный тест:
[Fact]
public void GetZipByState_CanGetZipCodesByStateId()
{
// Arrange
_mockMediator.Setup(m => m.Send<List<ZipCodeModel>>(It.Is<ZipCodeByStateQuery>(plist => plist.StateId == "VA")))
.Returns(new List<ZipCodeModel>()
{
new ZipCodeModel(){ ZipCodeId = "7690", ZipCode = "24210" },
new ZipCodeModel(){ ZipCodeId = "7691", ZipCode = "24211" },
new ZipCodeModel(){ ZipCodeId = "7692", ZipCode = "24212" }
});
// Act
//var actual = _controller.GetZipByState("VA");
JsonResult actual = _controller.GetZipByState("VA") as JsonResult;
List<ZipCodeModel> result = actual.Data as List<ZipCodeModel>;
// Assert
Assert.Equal("24211", (dynamic)actual.Data);
}
Я вижу данные, которые мне нужно получить, в моем Json в разделе:
фактический.Data.ZipCodes[1] на этом снимке экрана:
Но когда я пытаюсь поместить фактические данные в результирующую переменную, а затем выполнить утверждение, мне сообщается, что результат равен нулю.
Как вы должны это сделать?