2012-02-27 13 views
6

Potrzebuję przetestować niektóre składniki HTTP w mojej aplikacji Delphi. Używam DUnit i chcę dodać trochę automatyzacji do testowania.Serwer HTTP do testów jednostkowych w Delphi

Tak więc mój kod testowy musi uruchomić lokalny serwer HTTP, skonfigurować go (na przykład przygotować przerwę połączenia w ciągu 3 sekund lub symulować niską przepustowość lub poprosić o login/hasło itp.), Uruchomić moje urządzenie testy i zamknij serwer HTTP.

Czy niektóre serwery HTTP są dostępne dokładnie dla Delphi/DUnit?

Wiem, że zespół Mozilli ma such server, ale nie jest łatwo zintegrować go z DUnit.

Odpowiedz

9

Używam Indy'ego TIdHttpServer do podawania rzeczy w tym samym procesie.

Dzięki temu podejściu mogę sprawdzić, czy przychodzące żądania są poprawne, a także sprawdzać zachowanie od strony klienta.

Możesz także indywidualnie skonfigurować serwer na podstawie testowej, co ułatwi zrozumienie testów jednostek (co oznacza, że ​​nie masz "testu" w innym miejscu).

0

Możesz użyć testu jednostkowego/DUnit do skonstruowania automatycznych testów integracji. Powiedzmy, że komponenty HTTP jako klient HTTP nawiążą połączenia z usługą sieci Web. Możesz stworzyć własną fałszywą usługę sieci Web lub skorzystać z dowolnej publicznej usługi sieciowej, takiej jak Google lub Amazon. Musisz więc utworzyć konto programisty Google lub Amazon i korzystać z podstawowych funkcji usług do testowania.

0

Jeśli testujesz usługi SOAP, użyj SoapUI, aby ustawić "fałszywą" usługę opartą na twoim WSDL. Możesz poprosić go o przesłanie wielu odpowiedzi (sekwencyjnie lub za pomocą prostych skryptów, aby dopasować odpowiedzi do treści żądania). Dokonałem tego, dopasowując "żądanie ID" (tylko identyfikator GUID) do mojego żądania wysłanego z test DUnit, na odpowiedź w SoapUI. Jest to prosta kwerenda xpath, aby je dopasować.

Możesz poprosić o zwrócenie błędów/wyjątków "w puszkach", a oczywiście, gdy nie będzie działać, będziesz mieć test "niczyjego domu".