Mam niektóre metody w mojej aplikacji, które generują żądania http. Czy istnieje dobry sposób symulacji awarii sieci i złych odpowiedzi na testy jednostkowe?Metody testowania, które pobierają żądania http
Odpowiedz
Nadaje Mock Objects powinny pozwalają wykonywać takie symulacje łatwo; jeśli nie znasz tej koncepcji, tutaj jest dobry tutorial.
W przypadku awarii sieci nic nie przebije się po pierwszym odłączeniu kabli ethernetowych komputera (lub bezprzewodowo), a następnie odłączeniu dowolnego kabla zapewnia dostęp do chmury.
Jeśli przez złe odpowiedzi rozumie się błędy HTTP, można pisać skrypty ASP, które zawsze będą wyświetlać określone błędy. Jeśli chcesz przetestować źle sformułowane pakiety HTTP, musisz napisać prostą aplikację do obsługi gniazd.
Nie wiem, jak zintegrować proces odłączania kabla w systemie automatycznego budowania ;-) – assylias
Wyciągnij przewód LAN, lub wyłączyć router bezprzewodowy, gdy wnioski są wykonywane :)
To, co robimy w tej sytuacji, jest abstrakcyjną warstwą, która nawiązuje połączenie. Zamiast mieć swoją logikę bezpośrednio do żądania http, twój kod wywoła funkcję. W ramach tej funkcji może być coś takiego:
if (in_test) {
response = get_test_response();
} else {
response = make_http_request();
}
Wtedy można mieć swoje testy jednostkowe ustawić jakąś wartość dostępną przez funkcję get_test_response(). W ten sposób można programowo zmienić wynik połączenia.
Zwykle złe jest posiadanie tego rodzaju logiki w swojej aplikacji. Zalecam użycie obiektu próbnego. – codecraig
Zawiń bibliotekę, która wywołuje HTTP (np. Java.net.URLConnection lub Commons HttpClient) za interfejsem, a następnie napisz implementacje lub makiety tego interfejsu, które symulują warunki awarii.
Twój interfejs może jedynie reprezentować operacje, które aplikacja musi wykonać, a nie cały zakres funkcji klienta HTTP.
Może być pewna pomoc z Spring test mocks.
- 1. laravel obsługa żądania metody OPTION http:
- 2. Narzędzie wieloczęściowe HTTP do testowania
- 3. Żądania Pythona pobierają plik z lokalnego adresu URL
- 4. Jak radzić sobie z serwerami proxy, które blokują określone metody żądania HTTP?
- 5. Używanie SWIG z metodami, które pobierają std :: string jako parametr
- 6. Zabezpieczanie części żądania HTTP?
- 7. Nazwa żądania HTTP + odpowiedź
- 8. Bootstrappers, które pobierają pakiety przez Internet z firmy Microsoft
- 9. Odpowiedź zerowa z żądania HTTP HTTP Post
- 10. AngularJS przechwytuje wszystkie żądania HTTP http:
- 11. Równoległe żądania HTTP z Retrofitem
- 12. Czy adres URL żądania HTTP nie jest częścią nagłówka żądania HTTP?
- 13. Python - Zamówione nagłówki Żądania HTTP
- 14. Włącz żądania HTTP PUT na .NET MVC
- 15. Żądania HTTP w AWS Lambda
- 16. Swift2.0 żądania HTTP nie działa
- 17. Asynchroniczne żądania HTTP w PHP
- 18. Żądania HTTP z podstawowym uwierzytelnianiem
- 19. Równoległe żądania HTTP w ruby
- 20. Nagłówek żądania HTTP: zmienna UserAgent
- 21. Asyncio sprawia, że żądania HTTP są wolniejsze?
- 22. Jak uzyskać zawartość żądania http w Ruby?
- 23. Metody HTTP: DELETE vs POST
- 24. Coś takiego jak fałszywy serwer REST do testowania żądań HTTP?
- 25. Żądania HTTP HEAD w Railsach 3
- 26. Skryptowanie żądania nagłówka HTTP za pomocą netcata
- 27. Błąd SignalR podczas żądania Negotation podczas testowania Vagrant VM
- 28. Pobieranie pliku z żądania http w java
- 29. Fiddler - tunelowane żądania http do portu 443
- 30. Wysyłanie żądania HTTP POST JSON z Androida
+1 Mock it, nie zadzieraj z ciągnięciem przewodów. –
link samouczka wygasł. – tokhi