我试图了解基于自主机配置的集成测试是如何运行的。
在下面的代码中,我是否应该使用 WebApiConfig 注册我的配置。注册与否似乎没有区别。
整个管道真的在测试还是这是一种错觉?因为,如果我没有使用我的 API 中定义的配置和路由,而是像我在这里所做的那样声明我自己的,我可能只是没有测试完整的管道。
有没有其他方法可以完全测试 api。除了我的管道(如客户端、SelfHosting 等)之外,下面的代码还测试了很多东西。这对我来说似乎有点矫枉过正。有任何想法吗 ?
var config = new HttpSelfHostConfiguration("http://localhost:9090/");
config.Routes.MapHttpRoute("Default", "{api}/{controller}/{id}", new { id = RouteParameter.Optional });
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
MyApiProject.WebApiConfig.Register(config);
using (var server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
using (var client = new HttpClient())
{
using (var response = client.PostAsync("http://localhost:9090/api/login",
new FormUrlEncodedContent(new List<KeyValuePair<string,string>> { new KeyValuePair<string, strin("Foo","Bar)}), CancellationToken.None).Result)
{
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
}
using (var response = client.GetAsync("http://localhost:9090/api/login").Result)
{
Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
}
}
server.CloseAsync().Wait();
}