检查单元测试中的模型状态内容 .net core web api
Check modelstate content in unit test .net core web api
我有一个简单的控制器可以执行此操作
[HttpPost]
public async Task<ActionResult<MyModel>> PostAsync(CreationModel model)
{
ModelState.AddModelError(string.Empty, "Test error");
if (!ModelState.IsValid)
return BadRequest(ModelState);
...
}
单元测试有点像这样。
[Test]
public async Task Post_WhenCalled_BadRequest()
{
var barRequestResult = (await controller.PostAsync(model)).Result as BadRequestObjectResult;
Assert.That(barRequestResult, Is.TypeOf<BadRequestObjectResult>()); //This works
Assert.That(barRequestResult.Value, //How can I test the content of modelstate????)
}
我可以成功测试结果是 BadRequest 但我如何检查模型状态的内容?
Ta
您可以像下面这样检查模型状态的内容:
var data = barRequestResult.Value as Dictionary<string,object>;
var error = ((string[])data[""])[0];
Assert.That(true,error, "Test error");
结果:
我有一个简单的控制器可以执行此操作
[HttpPost]
public async Task<ActionResult<MyModel>> PostAsync(CreationModel model)
{
ModelState.AddModelError(string.Empty, "Test error");
if (!ModelState.IsValid)
return BadRequest(ModelState);
...
}
单元测试有点像这样。
[Test]
public async Task Post_WhenCalled_BadRequest()
{
var barRequestResult = (await controller.PostAsync(model)).Result as BadRequestObjectResult;
Assert.That(barRequestResult, Is.TypeOf<BadRequestObjectResult>()); //This works
Assert.That(barRequestResult.Value, //How can I test the content of modelstate????)
}
我可以成功测试结果是 BadRequest 但我如何检查模型状态的内容?
Ta
您可以像下面这样检查模型状态的内容:
var data = barRequestResult.Value as Dictionary<string,object>;
var error = ((string[])data[""])[0];
Assert.That(true,error, "Test error");
结果: