Tôi đang viết mô-đun perl giao tiếp với API và tôi muốn viết một bộ thử nghiệm cho nó trước khi đặt nó lên trên CPAN. Tuy nhiên, vì mô-đun này về cơ bản chỉ là một giao diện cho một API, tất cả các kiểm tra sẽ yêu cầu một khóa API và người dùng hợp lệ. Rõ ràng tôi không thể phát hành mô-đun này với khóa API và tên người dùng của tôi trong bộ thử nghiệm, vậy cách tốt nhất để xử lý một cái gì đó như thế này là gì? Tôi có nên thử nghiệm tại địa phương và sau đó đặt nó lên CPAN không có kiểm tra? Có ai chạy vào điều này trước và đưa ra một giải pháp tốt? Tôi biết rằng các bài kiểm tra viết là thực hành tốt nhất, vì vậy tôi muốn làm điều đó nếu tôi có thể. Cảm ơn!bộ kiểm tra perl cho API
Trả lời
Tại sao không gói các cuộc gọi API thành các chức năng nhỏ (ví dụ chức năng NOTHING nhưng cuộc gọi API), và sau đó thử các chức năng đó trong các thử nghiệm của bạn khi cần sử dụng Test::MockObject
hoặc tương tự?
này sẽ tốt hơn, vì bạn sẽ có thể làm xét nghiệm kiểm tra mà kết quả khác nhau từ API (thất bại, auth thất bại, vv ...)
Lưu ý: đây chắc chắn là một giải pháp nhiều thích hợp hơn để "bỏ qua các bài kiểm tra", nhưng kém hơn "thử nghiệm các bài kiểm tra đơn vị 100% mã không gọi API + cho phép người dùng cung cấp khóa và người dùng riêng cho các trường hợp kiểm tra tích hợp" – DVK
Câu trả lời này cũng tốt. Bạn sẽ nhận được để kiểm tra các bit thực hiện các giá trị trả về API. –
Tôi đã làm rõ trong tài liệu của tôi rằng mô-đun của tôi vô dụng mà không có khóa API và sử dụng bỏ qua: {} các cấu trúc thử nghiệm :: Thêm để bỏ qua tất cả các bài kiểm tra nếu khóa không có. Bạn có thể chọn quá bail_out thay vì bỏ qua.
Chỉ cần đảm bảo rằng tài liệu của bạn giải thích cách liên lạc khóa API với mô-đun.
bạn có thể cho tôi biết tên của mô-đun của bạn để tôi có thể xem nó như một ví dụ? – srchulo
có. cho tôi một phút để tìm nó. Tôi đã không làm việc trên nó trong hơn 2 năm :-) –
https://metacpan.org/release/VendorAPI-2Checkout-Client –
Cách thông thường tôi xử lý các loại điều này là để yêu cầu một biến môi trường để chạy bộ kiểm thử. Biến môi trường sẽ chứa bit thông tin hữu ích (ví dụ: khóa API, tên máy chủ để kết nối, v.v.)
Dưới đây là ví dụ về cách bạn có thể xử lý loại điều này từ bên trong tệp thử nghiệm. Chúng tôi sử dụng này cho việc phân phối MongoDB để kiểm tra nếu có một máy chủ có sẵn để chạy chống lại:
BEGIN {
eval {
my $host = exists $ENV{MONGOD} ? $ENV{MONGOD} : 'localhost';
$conn = MongoDB::MongoClient->new(host => $host, ssl => $ENV{MONGO_SSL});
};
if ([email protected]) {
plan skip_all => [email protected];
exit 0;
}
};
Tất cả điều này là cố gắng kết nối đến một máy chủ được quy định trong biến MONGOD
môi trường (hoặc khác localhost). Nếu nó có thể Không, nó bỏ qua tất cả các bài kiểm tra và cho biết lý do tại sao. Các bỏ qua vẫn được tính là không thành công, vì vậy nó sẽ không ngăn cản việc cài đặt mô-đun nếu không có máy chủ thử nghiệm nào.
Tôi có mã này trong tệp .pm mà tôi use
trong mọi tệp .t trong bản phân phối.
đây cũng là một câu trả lời hay. –
- 1. Kiểm tra API Google Maps cục bộ
- 2. angularjs - bộ kiểm tra kiểm tra
- 3. Có bất kỳ bộ kiểm tra tự động tốt nào cho Perl không?
- 4. Haskell: Kiểm tra các API web
- 5. Kiểm tra API Lint Eclipse của Android
- 6. Kiểm tra trong phản hồi API REST
- 7. Cách nhận bộ kiểm tra cảnh báo hiện được bật trong mô-đun perl?
- 8. kiểm tra lớp nội bộ
- 9. tương đương với thời gian cho bộ nhớ kiểm tra
- 10. Kiểm tra đơn vị cho bộ điều khiển lồng nhau
- 11. Có bộ kiểm tra kiểu cho C++ không?
- 12. kiểm tra perl sau khi được cài đặt
- 13. Kiểm tra đối số hàm Perl có đáng giá không?
- 14. Bài kiểm tra bài kiểm tra đơn vị .NET Web Api
- 15. Kiểm tra các API REST bằng cách sử dụng PHPUnit
- 16. Kiểm tra đồng bộ hóa Google Chrome nếu được bật qua API/Tiện ích mở rộng?
- 17. kiểm tra mã trong thiết bị chuyển mạch perl
- 18. perl -f kiểm tra không xác định được tệp
- 19. cách kiểm tra xem hàm băm có rỗng trong perl
- 20. Mã mẫu để kiểm tra đơn vị bộ điều khiển api
- 21. Kiểm tra mô-đun Perl với Thử nghiệm :: Thêm (Trung gian Perl, chương 14)
- 22. Làm cách nào để kiểm tra vô hướng cho giá trị 'inf' trong Perl?
- 23. Khung kiểm tra đơn vị ưu tiên cho Perl là gì?
- 24. Kiểm tra xem tệp cục bộ có tồn tại hay không (API HTML5 FS)
- 25. Kiểm tra JQuery cho Checkbox được kiểm tra
- 26. Kiểm tra API web bằng RSpec và VCR
- 27. Kiểm tra một API RESTful với POST từ Python
- 28. Kiểm tra trực tiếp Bộ chọn jQuery
- 29. Cách kiểm tra mã không đồng bộ
- 30. Bộ lọc kiểm tra tích hợp Grails
Bạn có thể viết và triển khai api giả không cần khóa hoặc khóa giả để kiểm tra cơ chế khóa. Điều này có thể được hoán đổi với api thực thông qua một biến môi trường cho những người có thật. – KeepCalmAndCarryOn
@KeepCalmAndCarryOn - xem câu trả lời của tôi :) – DVK