期望JSON数据的API Post事件的本地测试
本文关键字:测试 事件 API JSON 数据 期望 Post | 更新日期: 2023-09-27 18:01:42
我有一个POST IHttpActionResult方法在我的API控制器使用[FromBody]属性。
[Route("gameworld/generate")]
public IHttpActionResult PostNewWorld([FromBody] WorldData json)
通常,当我想在本地测试我的控制器时,我只需要到URL。
然而,我不能用这个方法这样做,因为我得到这个错误:
请求的资源不支持http方法'GET'.
是否有办法让我的本地环境看到这是一个POST事件?谢谢!
首先,ASP。. NET Web Api足够聪明,可以将json反序列化为对象,所以除非你真的希望在主体中得到字符串值,否则你可以在那里输入你的类型。
[Route("gameworld/generate")]
public IHttpActionResult PostNewWorld([FromBody] WorldData newWorld)
您可以使用Postman或Swagger之类的工具手动测试它,但是手动测试通常只做一次,然后就忘记了。这就为回归bug打开了方便之门,当你在将来做出改变时,忘记重新测试端点并使用api破坏应用程序。
因此,您应该编写单元测试来不断检查您的代码并防止回归错误。我一直在使用mytesting。WebApi在几个项目上,您可以测试路由和实际调用。例如:
MyWebApi
.Server()
.Working()
.WithHttpRequestMessage(req => req
.WithRequestUri("api/bugs")
.WithMethod(HttpMethod.Post)
.WithContent(myJsonString)
.ShouldReturnHttpResponseMessage()
.WithStatusCode(HttpStatusCode.Created)
.WithResponseModelOfType<BugReport>()
.Passing(r => r != null);
有很多东西需要测试,所以一定要阅读文档