Tôi có một số phương pháp trong ứng dụng của mình tạo yêu cầu http. Có cách nào tốt để mô phỏng thất bại mạng và phản hồi xấu cho các bài kiểm tra đơn vị?Phương pháp thử yêu cầu http yêu cầu
Trả lời
Thích hợp Mock Objects nên phép bạn thực hiện các mô phỏng như vậy một cách dễ dàng; nếu bạn không quen với khái niệm này, có một số tutorial ở đây.
Đối với lỗi mạng, không có gì đập trước khi rút cáp ethernet của máy tính (hoặc d/c không dây) và sau đó rút cáp bất kỳ cho phép bạn truy cập vào đám mây.
Nếu do phản hồi xấu, bạn có nghĩa là lỗi HTTP, bạn có thể viết các tập lệnh ASP sẽ luôn ném các lỗi cụ thể. Nếu bạn muốn kiểm tra các gói HTTP không đúng định dạng, bạn sẽ phải viết một ứng dụng socket đơn giản để thực hiện điều đó.
Bạn không chắc chắn cách tích hợp quá trình rút cáp trong hệ thống xây dựng tự động của mình mặc dù ;-) – assylias
Kéo dây lan của bạn, hoặc tắt router không dây của bạn trong khi các yêu cầu đang được thực hiện :)
Điều chúng tôi làm trong trường hợp này là trừu tượng lớp đang thực hiện cuộc gọi. Thay vì có logic của bạn trực tiếp thực hiện các yêu cầu http, có mã của bạn gọi một chức năng. Trong chức năng đó có thể là một cái gì đó như:
if (in_test) {
response = get_test_response();
} else {
response = make_http_request();
}
Sau đó, bạn có thể thử nghiệm đơn vị thiết lập một số giá trị có thể truy cập bởi hàm get_test_response(). Bằng cách này, bạn có thể thay đổi theo chương trình kết quả của cuộc gọi đó.
Nó thường là hình thức xấu để có loại logic trong ứng dụng của bạn. Tôi khuyên bạn nên sử dụng một đối tượng giả. – codecraig
Đưa thư viện thực hiện cuộc gọi HTTP (ví dụ: java.net.URLConnection hoặc Commons HttpClient) phía sau giao diện rồi viết triển khai hoặc giao diện của giao diện đó mô phỏng các điều kiện lỗi.
Giao diện của bạn chỉ có thể thể hiện các hoạt động mà ứng dụng của bạn cần thực hiện, thay vì toàn bộ phạm vi chức năng của ứng dụng khách HTTP.
Có thể Spring test mocks sẽ có một số trợ giúp.
- 1. Yêu cầu DELETE HTTP
- 2. Thay đổi HTTP bài yêu cầu HTTPS bài yêu cầu:
- 3. JAVA: http yêu cầu đăng
- 4. Tải trọng yêu cầu HTTP
- 5. Volley: http yêu cầu chậm
- 6. URL yêu cầu HTTP có phải là một phần của tiêu đề yêu cầu HTTP không?
- 7. Phương pháp yêu cầu PATCH trong Backbone.js
- 8. Cách viết Yêu cầu HTTP
- 9. Yêu cầu HTTP SOAP PHP
- 10. Gửi http xóa yêu cầu
- 11. Symfony2: gửi yêu cầu HTTP
- 12. yêu cầu http với powershell
- 13. Nghe các yêu cầu HTTP
- 14. Http Yêu cầu Vòng đời
- 15. Yêu cầu HTTP trong Ubuntu
- 16. Yêu cầu PUT HTTP với Node.js
- 17. Yêu cầu HTTPS HTTPS đến HTTP
- 18. cách phân tích cú pháp yêu cầu http trong C++
- 19. không thể mở luồng: Yêu cầu HTTP không thành công! Yêu cầu Xấu HTTP/1.1 400
- 20. Đường ray - Không chặn yêu cầu HTTP?
- 21. Cách lấy phương thức HTTP của yêu cầu REST
- 22. Phát hiện phía máy khách phương thức yêu cầu HTTP
- 23. Yêu cầu HTTP CHÍNH trong Rails 3
- 24. Yêu cầu HTTP Ajax qua HTTPS Trang
- 25. Nhiều yêu cầu HTTP trong C#
- 26. HTTP, 408 Yêu cầu hết giờ
- 27. Android Async Http Nhận yêu cầu
- 28. jQuery Nhận Yêu cầu trên URL HTTP
- 29. Thực hiện yêu cầu HTTP POST
- 30. Yêu cầu HTTP rất lớn so với nhiều yêu cầu nhỏ
+1 Giả lập, không gây rối với việc kéo dây. –
liên kết hướng dẫn đã hết hạn. – tokhi