I'm writing unit tests for JSON responses.
This is my method:
public ActionResult AddMakeAliasData(MakeAliasModel makeAliasModel)
{
if (!ModelState.IsValid)
{
ModelState.LogModelStateError();
throw new BusinessException("COMMON_ERROR");
}
var response = _vehicleDataBusinessService.AddMakeAliasData(makeAliasModel);
return Json(response);
}
I wrote a test case for this:
[Test]
public void ShouldReturnJsonInAddMakeAlias()
{
//Arrange
var data = new GetVehicleDataAliases
{
ErrorMessage = null,
ErrorCode = null,
MakeDtos = new List<VehicleDto>(),
Success = true,
FindData = new List<SearchData>()
};
mockVehicleDataBusinessService.Setup(x => x.AddMakeAliasData(It.IsAny<MakeAliasModel>())).Returns(() => data);
var sut = new VehicleDataController(mockVehicleDataBusinessService.Object);
//Act
var result = sut.AddMakeAliasData(makeAliasModel) as JsonResult;
//Assert
Assert.AreEqual(data,result);
}
But I am getting this error:
Expected: <Message.Response.GetVehicleDataAliases>
But was: <System.JsonResult>
There Is something wrong in the assertion or my expected result is not proper.
What should I do? For checking the JSON result how should I do that?