相关疑难解决方法(0)

AttributeRouting不能与HttpConfiguration对象一起编写集成测试

我按照此处列出的想法创建了一些集成测试:http: //www.strathweb.com/2012/06/asp-net-web-api-integration-testing-with-in-memory-hosting/

当我尝试从手工制作的HttpConfiguration对象注册路由时,我收到以下错误:"路由模板'api/Contacts/{id}'的路径上的约束条目'inboundHttpMethod'必须具有字符串值或者是一种实现'IHttpRouteConstraint'的类型."

示例代码:控制器:

 [RoutePrefix("api")]
    public class ContactsController : ApiController
    {
        [GET("Contacts/{id}",RouteName="GetContactsById")]
        public ContactDTO Get(int id)
        {
      return new ContactDTO{ ID =1, Name="test"};
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

TestClass(MSTest):

 [TestClass]
    public class ContactsTest
    {
        private string _url = "http://myhost/api/";
        private static HttpConfiguration config = null;
        private static HttpServer server = null;
        private HttpRequestMessage createRequest(string url, string mthv, HttpMethod method)
        {
             var request = new HttpRequestMessage();
            request.RequestUri = new Uri(_url + url);
            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue(mthv));
            request.Method = method;
            return request;
        }
        private …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api attributerouting asp.net-web-api-routing

8
推荐指数
1
解决办法
3911
查看次数