Unit testing 检查单元测试.net核心web api中的modelstate内容

Unit testing 检查单元测试.net核心web api中的modelstate内容,unit-testing,.net-core,nunit,asp.net-core-webapi,Unit Testing,.net Core,Nunit,Asp.net Core Webapi,我有一个简单的控制器与这个行动 [HttpPost] public async Task<ActionResult<MyModel>> PostAsync(CreationModel model) { ModelState.AddModelError(string.Empty, "Test error"); if (!ModelState.IsValid) return BadRequest(ModelState);

我有一个简单的控制器与这个行动

[HttpPost]
public async Task<ActionResult<MyModel>> PostAsync(CreationModel model)
{
    ModelState.AddModelError(string.Empty, "Test error");

    if (!ModelState.IsValid)
        return BadRequest(ModelState);

    ...
}
[HttpPost]
公共异步任务PostAsync(CreationModel模型)
{
AddModelError(string.Empty,“测试错误”);
如果(!ModelState.IsValid)
返回请求(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????)
}
[测试]
公共异步任务Post_WhenCalled_BadRequest()
{
var barRequestResult=(wait controller.PostAsync(model)).Result作为BadRequestObjectResult;
Assert.That(barRequestResult,Is.TypeOf());//这很有效
Assert.That(barRequestResult.Value,//如何测试modelstate的内容??)
}
我可以成功地测试结果是否为BADDRequest,但如何检查modelstate的内容


Ta

您可以检查modelstate的内容,如下所示:

var data = barRequestResult.Value as Dictionary<string,object>;
var error = ((string[])data[""])[0];
Assert.That(true,error, "Test error");
var data=barRequestResult.Value作为字典;
变量错误=((字符串[])数据[])[0];
断言(正确,错误,“测试错误”);
结果:

Hi@Sun,我的回答是否帮助您解决了问题?是的。非常感谢你。非常感谢。