Owin Selfhosted web api没有达到api控制器/动作

时间:2016-02-17 10:23:07

标签: unit-testing asp.net-web-api2 integration-testing owin self-hosting

我已经开始使用教程http://www.strathweb.com/2013/12/owin-memory-integration-testing/,一切正常,但是当我对我的真实项目执行相同的步骤时,我得到StatusCode 500(内部服务器错误)作为响应。当我尝试调试api时,我意识到它甚至没有达到api控制器或动作。这是我从Startup类开始做的事情:

    public class OwinStartup
    {
        public void Configuration(IAppBuilder appBuilder)
        {
            var config = new HttpConfiguration();
            config.Routes.MapHttpRoute("DefaultApi", "Api/{controller}/{id}",
                                        new { id = RouteParameter.Optional });
            config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
            appBuilder.UseWebApi(config);
        }
   }

然后我试图通过这样做来获取实体:

using (TestServer server = TestServer.Create<OwinStartup>())
            {
            server.BaseAddress = new Uri("http://localhost/");
            var response = server.HttpClient.GetAsync("Api/controllerName").Result;
            var result = response.Content.ReadAsAsync<EntityModel>().Result;
            Assert.IsNotNull(result);
            }

当我浏览我正在设置的链接(http://localhost/api/controllerName)时,我得到了我想要的值(在浏览器中)但是它正在使用IIS。在我的情况下,我想使用OWIN testServer。我关闭IIS并运行我的测试,但仍然是相同的响应。正如我所说,我是按照教程进行的,仅此而已。 这就是我得到的:enter image description here 我是否需要制作类似OwinMiddleware的东西?或者我错过了什么? 谢谢!

0 个答案:

没有答案