Я написал единичный тест для исключения. Но похоже, что он работает неправильно. Он всегда говорит «404 Not Found» Status. это означает, что запрос URL не найден. Если я вставляю одинаковый URL-адрес в браузере, то он HttpResponse.StatusCode
говорит BAD REQUEST
.Тест веб-API для исключения?
Я не понимаю, почему он не работает для модульного теста.
[TestMethod()]
public void GetTechDisciplinesTestException()
{
var config = new HttpSelfHostConfiguration("http://localhost:51546/");
config.Routes.MapHttpRoute("DefaultApi", "api/{controller}/{id}");
using (var server = new HttpSelfHostServer(config))
using (var client = new HttpClient())
{
server.OpenAsync().Wait();
using (var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:51546/api/techdisciplines/''"))
using (var response = client.SendAsync(request).Result)
{
//Here Response Status Code says 'Not Found',
//Suppose to be 'Bad Request`
Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
}
server.CloseAsync().Wait();
};
}
Я попытался с HttpSelfHostServer
, который прекрасно работает, и он использует IISExpress.
[TestMethod()]
public void GetTechDisciplinesTestException()
{
using (var client = new HttpClient())
{
using (var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:51546/api/techdisciplines/''"))
using (var response = client.SendAsync(request).Result)
{
Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
}
};
}
Так что я не знаю HttpSelfHostServer
не wkring в коде? Как заставить HttpSelfHostServer
использовать IISExpress
? Как бороться с этим?
Я использовал [Fiddler] (http://fiddler2.com/), чтобы увидеть различия между двумя запросами. – GolfWolf
Я сделал это сейчас. Browser 400-Bad Request, но запрос на тестирование модуля не отображается в Fiddler. – James123
, вам может потребоваться настроить ваш проект .NET для использования прокси-сервера Fiddler. Это может помочь: http://fiddler2.com/documentation/Configure-Fiddler/Tasks/ConfigureDotNETApp – GolfWolf