セルフホスト構成ベースの統合テストがどのように実行されているかを理解しようとしています。
以下のコードでは、構成を 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();
}