Tôi đang viết một ứng dụng iPhone cần lấy một số dữ liệu từ máy chủ web. Tôi đang sử dụng NSURLConnection
để thực hiện yêu cầu HTTP, hoạt động tốt, nhưng tôi gặp sự cố khi kiểm tra mã của tôi trong trường hợp phản hồi có mã lỗi HTTP (như 404 hoặc 500).Thử nghiệm sử dụng NSURLConnection với trạng thái lỗi phản hồi HTTP
Tôi đang sử dụng GTM để kiểm tra đơn vị và OCMock để chế nhạo.
Khi máy chủ trả về lỗi, kết nối không gọi connection:didFailWithError:
trên đại biểu, nhưng hãy gọi connection:didReceiveResponse:
, connection:didReceiveData:
và connectionDidFinishLoading:
để thay thế. Tôi hiện đang kiểm tra mã trạng thái trên phản hồi trong connection:didReceiveResponse:
và gọi số cancel
trên kết nối khi mã trạng thái có vẻ như lỗi để ngăn không cho connectionDidFinishLoading:
được gọi, nơi phản hồi thành công sẽ được báo cáo.
Cung cấp một stubbed tĩnh NSURLConnection
rất đơn giản, nhưng tôi muốn thử nghiệm của mình thay đổi hành vi của nó khi một trong các phương thức kết nối giả được gọi. Cụ thể, tôi muốn thử nghiệm có thể biết khi nào mã được gọi là cancel
trên kết nối giả, vì vậy thử nghiệm có thể ngừng gọi số connection:didReceiveData:
và connectionDidFinishLoading:
trên đại biểu.
Có cách nào để kiểm tra để biết liệu cancel
có được gọi trên đối tượng giả không? Có cách nào tốt hơn để kiểm tra mã sử dụng NSURLConnection
không? Có cách nào tốt hơn để xử lý trạng thái lỗi HTTP không?
bạn có muốn hiển thị một số mã mẫu về cách bạn kiểm tra đơn vị các cuộc gọi đến NSURLConnection không? –