다음과 같은 문제를 어떻게 해결할 수 있습니까?다른 언어로 제공되는 API의 테스트 평등
토큰의 유효성을 검사하는 API (단순한 XML 파일)가 있습니다. 따라서 API는 validateTime(String tokenPath)
, validateFileHash(String tokenPath)
또는 validateSomthingElse(String tokenPath)
과 같은 유효성 검사 메소드를 지정합니다.
API는 이미 두 가지 다른 언어로 구현되어 있습니다. Java and C. 내 작업은 두 버전 모두 이 동일한처럼 동작하는지 확인하는 것입니다. 따라서 validateTime("expiredToken.xml")
을 호출 한 후 Java가 TokenExpiredException
을 throw하면 C는 해당 오류 값 (이 경우 TOKEN_EXPIRED에 대해 사전 정의 된 -4
)을 반환해야합니다.
좋은 오래된 접근 방식은 두 언어로 Unit/Integration-tests를 작성하는 것입니다. 그러나 이것은 본질적으로 Java와 C에서 동일한 테스트를 구현해야하므로 두 배의 노력이 필요합니다.
제 생각은 TestCases에 대한 XML 스키마를 정의하는 것이 었습니다.
<!-- TestCases.xml -->
<testcase>
<tokenpath>expiredToken.xml</tokenpath>
<apiMethod>validateTime</apiMethod>
<expectationJava>TokenExpiredException</expectationJava>
<expectationC>-4</expectationC>
</testcase>
<testcase>
...
</testcase>
또한 내가 TestCases.xml를 분석하고 직접 사전 기대 결과와 일치하는 (C에 대한 JNI를 사용하여) 모두 API 버전을 호출하는 작은 자바 도구를 구축 할 것입니다.
실현 가능한 계획이라고 생각하십니까? 아니면 이전 접근 방식을 수행하는 것이 더 좋습니까? 이러한 유형의 작업을 처리 할 프레임 워크가 있습니까? 아니면 시작하는 것이 좋습니까? 사전
P.S.에서
감사합니다 내 영어로 죄송합니다 :)