2012-03-13 24 views
1

如何解決以下問題?測試以不同語言呈現的API是否相等

我有一個API驗證令牌(這只是簡單的XML文件)。所以API指定了一組驗證方法,如validateTime(String tokenPath),validateFileHash(String tokenPath)validateSomthingElse(String tokenPath)

API已經以兩種不同的語言實現。 Java和C.我的任務是確保兩個版本的行爲相同。因此,如果Java在調用validateTime("expiredToken.xml")後拋出TokenExpiredException,則C應該返回相應的錯誤值(在這種情況下,TOKEN_EXPIRED爲預定義的-4)。

好的舊方法是用這兩種語言編寫單元/集成測試。然而,這需要加倍努力,因爲我必須在Java和C中實施基本相同的測試。我的想法是爲TestCases定義一個XML-Schema,它看起來像這樣。

<!-- TestCases.xml --> 
<testcase> 
    <tokenpath>expiredToken.xml</tokenpath> 
    <apiMethod>validateTime</apiMethod> 
    <expectationJava>TokenExpiredException</expectationJava> 
    <expectationC>-4</expectationC> 
</testcase> 

<testcase> 
    ... 
</testcase> 

而且我將建立一個小的Java工具來分析TestCases.xml和直接調用API兩種版本(使用JNI爲C)相匹配的結果向預設的期待。

您認爲這是一個可行的方案,還是採用舊方法更好?有沒有框架來處理這類任務,或者是一開始就有臭味?

在此先感謝

P.S.對不起,我的英語:)

回答

0

您的方法是可行的,如果您可以利用一些現有的data driven testing框架,更好的辦法是。這樣您就不需要執行解析輸入,運行測試用例和聲明輸出。

下面是如何通過的JUnit +包含數據的Excel電子表格驅動的Java測試的例子:http://www.wakaleo.com/component/content/article/241

我沒有立即看到一個,但我希望你可以找到C.

類似的東西
相關問題