Tôi đang đi vào thử nghiệm trong python và tôi tự hỏi mình làm thế nào để kiểm tra phương pháp này.Làm thế nào để bạn kiểm tra một hàm sử dụng truy xuất dữ liệu bằng urllib2?
def get_response(self, url, params):
encoded_params = urllib.urlencode(params)
request = urllib2.Request(BASE_URL, headers=HEADERS)
response = urllib2.urlopen(request, encoded_params)
return response
Sử dụng doctest hoặc unittest, cách tốt nhất đạt được điều này? Tôi đã nghĩ đến việc vượt qua get_response()
url kiểm tra và một số thông số thử nghiệm tồn tại trong thế giới thực và để kiểm tra xem response.read()
có trả về dữ liệu dự kiến hay không. Nhưng bằng cách nào đó tôi cảm thấy, đây không phải là cách nó nên được thực hiện. Bất kỳ đề xuất? Tôi sẽ đánh giá cao các đề xuất làm thế nào để xử lý các trường hợp như vậy trong bối cảnh nhắn tin.
Trước tiên, hãy xác định hợp đồng mà phương pháp phải tuân thủ. Bài đăng phác thảo thử nghiệm * phản hồi được chấp nhận *, nhưng bây giờ làm thế nào thất bại nên được xử lý. Tuy nhiên, thử nghiệm * dữ liệu * thực tế, nghe có vẻ giống một bài kiểm tra tích hợp hơn. –
Hãy xem mã scikit-learning (BSD được cấp phép) thực hiện chính xác điều này; [testcases] (https://github.com/scikit-learn/scikit-learn/blob/master/scikits/learn/datasets/tests/test_mldata.py), ['mock_urllib2'] (https://github.com /scikit-learn/scikit-learn/blob/master/scikits/learn/utils/testing.py#L55). –