我已经在这上面花了半天时间,但没有任何成功。如何在 Web API 中对路由进行单元测试?
我的意思是给定以下 URI:
~/Test/Get/2
我想对上面的 url 由测试 Controller 捕获并接受 int 参数的 Get 操作进行单元测试。
最佳答案
为了测试路由,我创建了一个库来帮助您进行断言 - MyWebApi:https://github.com/ivaylokenov/MyWebApi
基本上,您可以执行以下操作:
MyWebApi
.Routes()
.ShouldMap(“api/WebApiController/SomeAction/5”)
.WithJsonContent(@”{“”SomeInt””: 1, “”SomeString””: “”Test””}”)
.And()
.WithHttpMethod(HttpMethod.Post)
.To(c => c.SomeAction(5, new RequestModel
{
SomeInt = 1,
SomeString = “Test”
}));
如果想自己实现,可以看这里的代码,复制过来: https://github.com/ivaylokenov/MyWebApi/blob/master/src/MyWebApi/Utilities/RouteResolvers/InternalRouteResolver.cs
关于c# - Web API 中的单元测试自定义路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386120/