Я хочу использовать модульное тестирование для проверки функциональности моего HTTP-прослушивателя. Но мне трудно заставить его прекратить слушать, когда он закончен.Закрыть соединение при завершении тестирования
private HttpListener listener = new HttpListener();
public ListenerTests()
{
listener.Start("1234");
}
//Test if the listener can respond
[TestMethod]
public void TestResponse()
{
WebClient client = new WebClient();
string response = client.DownloadString("http://localhost:1234/");
Assert.IsNotNull(response);
}
//Test if the server can stop without issues
[TestMethod]
public void TestStop()
{
listener.Stop();
}
Если бы я только запустить тест TestStop(), то он всегда будет перестать слушать и во время работы во второй раз он работает отлично. Если я запустил оба, это будет нормально работать в первый раз, но во второй раз «механизм выполнения теста» все еще работает, а порт недоступен.
Я думаю, что работающий Stop() после всех тестов разрешит проблему ... Но я не могу понять, как?
Я пробовал использовать заказываемые тесты, но у меня были разные проблемы. Несмотря на то, что я изменил порт на нем, чтобы слушать его, казалось бы, случайным образом использовал тот, который я выбрал ранее, который тогда был бы недоступен навсегда. Кроме того, это далеко не идеально.
ClassInitialize должен быть статическим. Мой класс, однако, не является статичным. Вместо этого я использовал TestIntialize. Кажется, что он работает одинаково. Спасибо за комментарий. На самом деле я действительно новичок в модульном тестировании. – Ozitiho