检查单元测试中的模型状态内容 .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");

结果: