C# 通过测试检测坏请求
我有两个项目:Api和Api.Tests 我想向API发送无效的DTO,然后检查是否接收到BadRequest(状态代码) 我的代码:C# 通过测试检测坏请求,c#,asp.net-core,mstest,C#,Asp.net Core,Mstest,我有两个项目:Api和Api.Tests 我想向API发送无效的DTO,然后检查是否接收到BadRequest(状态代码) 我的代码: var user = new UserDTO {...}; IActionResult response = await new UsersController().Post(user); Assert.IsInstanceOfType(response, typeof(Microsoft.AspNetCore.Mvc.BadRequestResult));
var user = new UserDTO {...};
IActionResult response = await new UsersController().Post(user);
Assert.IsInstanceOfType(response, typeof(Microsoft.AspNetCore.Mvc.BadRequestResult));
错误:
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()位于
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)结果2消息:Assert.IsInstanceOfType失败。预期
类型:。实际的
类型:
错误显示我已收到“Ok”,但我已与Postman进行了检查,并收到了BadRequest。与使用Postman的集成测试相比,单独的单元测试将产生不同的结果。考虑内存测试服务器的本地集成测试。参考:您如何验证模型?是否通过
DataAnnotation
?@AnkitVijay和fluent验证fluent验证将在到达控制器之前返回错误请求。这就是为什么你会收到邮递员不好的要求。您需要创建集成测试而不是UnitTest来验证您的场景