2012-03-13 1 views
1

다음과 같은 문제를 어떻게 해결할 수 있습니까?다른 언어로 제공되는 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.에서

감사합니다 내 영어로 죄송합니다 :)

답변

0

당신이 접근 할 수있는 방법이 있습니다. 어떤 기존의 data driven testing 프레임 워크를 이용할 수 있다면 더욱 좋습니다. 이렇게하면 입력을 구문 분석하고 테스트 케이스를 실행하고 출력을 선언하는 등의 작업을 수행 할 필요가 없습니다. http://www.wakaleo.com/component/content/article/241

내가 바로 하나를 보지 않았다, 그러나 희망 당신은 C.

비슷한 뭔가를 찾을 수 있습니다 여기에

는 JUnit을 + 데이터를 포함하는 Excel 스프레드 시트를 통해 자바 테스트를 운전하는 방법의 예