无法读取单元测试中的响应内容
Unable to read response Content in Unit Test
我正在尝试使用 NUnit 在 ASP.net 核心 2.2 中编写一个非常简单的单元测试。这是获取:
[HttpGet]
public IActionResult Cars()
{
return Ok( new { Cars = new BusinessLayer().GetListOfCars() } );
}
GetListOfCars()
的 return 类型是 List<Car>
。其中 Car
是 class 与 Name
和 Model
.
这是我的单元测试:
[Test]
public void CarControllerTest_GetAll()
{
CarsController myController = new CarsController();
var response = myController.Cars();
var result = response as OkObjectResult;
Assert.AreEqual(StatusCodes.Status200OK, result.StatusCode);
}
以上测试工作正常,但我如何读取响应的内容,因为我还需要验证记录数。
我已经试过了,但没有用。
var carlist = result.Value as List<Car>;
var carlist = result.Value as List<Car>;
无效,因为您将数据包装在匿名对象中。
new { Cars = new BusinessLayer().GetListOfCars() }
使用动态提取想要的属性
dynamic model = result.Value;
List<Car> carlist = (List<Car>)model.Cars;
使用 dynamic 提取 Nkosi 建议的所需 属性 似乎存在一个小缺陷。
您可以尝试使用反射来读取如下数据:
var result = (response as OkObjectResult).Value;
var carlist = result.GetType().GetProperty("Cars").GetValue(result,null);
var list = carlist as List<Car>;
我正在尝试使用 NUnit 在 ASP.net 核心 2.2 中编写一个非常简单的单元测试。这是获取:
[HttpGet]
public IActionResult Cars()
{
return Ok( new { Cars = new BusinessLayer().GetListOfCars() } );
}
GetListOfCars()
的 return 类型是 List<Car>
。其中 Car
是 class 与 Name
和 Model
.
这是我的单元测试:
[Test]
public void CarControllerTest_GetAll()
{
CarsController myController = new CarsController();
var response = myController.Cars();
var result = response as OkObjectResult;
Assert.AreEqual(StatusCodes.Status200OK, result.StatusCode);
}
以上测试工作正常,但我如何读取响应的内容,因为我还需要验证记录数。
我已经试过了,但没有用。
var carlist = result.Value as List<Car>;
var carlist = result.Value as List<Car>;
无效,因为您将数据包装在匿名对象中。
new { Cars = new BusinessLayer().GetListOfCars() }
使用动态提取想要的属性
dynamic model = result.Value;
List<Car> carlist = (List<Car>)model.Cars;
使用 dynamic 提取 Nkosi 建议的所需 属性 似乎存在一个小缺陷。
您可以尝试使用反射来读取如下数据:
var result = (response as OkObjectResult).Value;
var carlist = result.GetType().GetProperty("Cars").GetValue(result,null);
var list = carlist as List<Car>;