【发布时间】:2014-09-13 00:06:50
【问题描述】:
我有一个带有路由属性的控制器。此控制器在单元测试中失败,因为找不到路由:
在路由集合中找不到名为“Values”的路由
这是控制器方法:
[Route("api/values", Name="ApiValues")]
[HttpGet]
public HttpResponseMessage Get()
{
urlHelper.Link("ApiValues", new {});
}
这是我的单元测试:
var valuesController = new ValuesController()
{
Request = new HttpRequestMessage
{
RequestUri = new Uri("http://localhost/api/")
},
Configuration = new HttpConfiguration()
};
valuesController.Get();
我也尝试将此添加到单元测试中:
valuesController.Configuration.MapHttpAttributeRoutes();
valuesController.Configuration.EnsureInitialized();
但这没有任何帮助。
【问题讨论】:
-
奇怪的是我无法重现您的问题。在我的机器上一切正常。你用的webapi是什么版本的?您是否提供了所有测试代码?我认为单元测试不会针对属性路由部分进行。
-
控制器动作中的“urlHelper”是什么?能完整分享一下吗?谢谢
标签: c# unit-testing asp.net-web-api asp.net-web-api-routing