API와 인터페이스하는 perl 모듈을 작성 중이므로 CPAN에 올려 놓기 전에 테스트 스위트를 작성하고 싶습니다. 그러나이 모듈은 기본적으로 API 용 인터페이스이기 때문에 모든 테스트에는 유효한 API 키와 사용자가 필요합니다. 분명히이 모듈을 테스트 스위트의 API 키와 사용자 이름으로 공개 할 수 없으므로 이와 같은 것을 처리하는 가장 좋은 방법은 무엇일까요? 그냥 로컬에서 테스트하고 CPAN에 테스트없이 넣어야합니까? 누구든지이 문제에 뛰어 들어 좋은 해결책을 찾았습니까? 나는 필기 시험이 모범 사례라는 것을 알고 있습니다. 그렇게 할 수 있다면 시험을하고 싶습니다. 감사!API 용 펄 테스트 스위트
답변
API 호출을 작은 함수 (예 : NOTHING이 아니라 API 호출)로 포장 한 다음 Test::MockObject
또는 그 유사 물을 사용하여 필요에 따라 테스트에서 해당 함수를 모의 해보지 않는 이유는 무엇입니까?
당신이 API는 다른 결과를 테스트 테스트를 가질 수있을 것 같은이, 더 나은 것 (실패, 인증 실패, 등 ...)
메모 : 이것은 분명히 많은 해결책이다. 테스트를 건너 뛰는 것이 더 좋지만 "유닛 테스트를위한 테스트를 조롱하지 말고 비 API 호출 코드의 100 % + 사용자가 통합 테스트 케이스에 대해 자신의 키와 사용자를 제공하도록하십시오" – DVK
이 대답도 좋습니다. API 반환 값을 수행하는 비트를 테스트 할 수 있습니다. –
필자의 문서에서 API 키가 없으면 모듈이 쓸모가 없다는 것을 분명히했고 키가 없으면 Test :: More 구문을 건너 뛰고 모든 테스트를 건너 뛰었습니다. 건너 뛰기 대신 bail_out을 선택할 수도 있습니다.
문서에서 API 키를 모듈에 전달하는 방법을 설명했는지 확인하십시오.
예를 들어 볼 수 있도록 모듈의 이름을 알려주시겠습니까? – srchulo
예. 그것을 찾아 볼 시간을주세요. 나는 2 년 넘게 그것을 연구하지 않았다 :-) –
https://metacpan.org/release/VendorAPI-2Checkout-Client –
내가 이런 종류의 물건을 처리하는 일반적인 방법이다 테스트 스위트를 실행하려면 환경 변수가 필요합니다. 환경 변수에는 유용한 정보 (예 : API 키, 연결할 호스트 이름 등)가 포함됩니다.
다음은 테스트 파일 내에서 이러한 종류의 문제를 처리하는 방법의 예입니다. 우리는에 대해 실행 가능한 서버가 있는지 확인하기 위해 MongoDB 배포이 사용
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;
}
};
모든이가 할 수있는 경우 MONGOD
환경 변수에 지정된 (또는 다른 로컬 호스트.) 호스트에 연결을 시도입니다 않습니다 't, 그것은 모든 테스트를 건너 뛰고 그 이유를 알려줍니다. 스킵은 여전히 비 실패로 간주되므로 테스트 서버를 사용할 수없는 경우 모듈 설치를 방해하지 않습니다.
이 코드는 배포본의 .t 파일에 모두 use
인 .pm 파일에 있습니다.
이것은 좋은 대답입니다. –
- 1. 스톰 테스트 용 테스트 스위트
- 2. JDBC 테스트 스위트
- 3. 자바 용 테스트 스위트 - 그것은 무엇입니까?
- 4. Rakudo 테스트 스위트 진행?
- 5. CRUD 테스트 스위트 설계
- 6. 테스트 링크에서 테스트 스위트 용 필드를 일괄 업데이트하는 방법은 무엇입니까?
- 7. 테스트 스위트 unittest
- 8. Jmeter의 Junit 테스트 스위트
- 9. Robotframework에서 테스트 스위트 실행하기
- 10. Webdriver에서 테스트 스위트 생성
- 11. phpunit 확장 테스트 스위트
- 12. 셀레늄 테스트 스위트
- 13. 변수가있는 fitnesse 테스트 스위트
- 14. DFA 최소화 테스트 스위트?
- 15. 봄 다운로드 테스트 스위트
- 16. 유닛 테스트 스위트 (Python)
- 17. Linq는 단위 테스트 스위트
- 18. JUnit 4 테스트 스위트 문제
- 19. 테스트 용 UIAutomation API
- 20. 여분의 JUnit 테스트 스위트 테스트 제거
- 21. py.test로 테스트 스위트 (임의의 테스트 컬렉션) 실행
- 22. 유닛 테스트 - 다른 파일로 테스트 스위트 분리하기
- 23. Java List API 구현을위한 오픈 소스 테스트 스위트?
- 24. 자동 버그 발견을위한 테스트 스위트
- 25. 방법 : 파이썬에서 테스트 스위트 설정하기
- 26. 수동으로 코에 테스트 스위트 추가
- 27. ECMAScript 5 지원을위한 테스트 스위트
- 28. Gradle에 추가 테스트 스위트 추가
- 29. Django 테스트 스위트 URL 커버리지
- 30. CakePHP 테스트 스위트 및 개미
키 메커니즘을 테스트하기 위해 키 또는 가짜 키가 필요없는 가짜 API를 작성하고 배포 할 수 있습니다. 진짜를 가진 사람들을위한 환경 변수를 통해 실제 api와 바꿀 수 있습니다. – KeepCalmAndCarryOn
@KeepCalmAndCarryOn - 내 대답을 참조하십시오 :) – DVK