2011-02-01 53 views
1

我正面臨着我認爲是一個常見問題,但我還沒有找到太多的討論或現有的工具來解決它。我試圖建立一個集成測試系統(已經有一套強大的單元測試),它支持QA提交輸入數據和預期結果(最好是平面文件形式),可以從標準化的junit類運行。java的數據驅動集成測試工具

我有一個計劃,使用junit @Paramaterized註釋來滾動我自己。我在想象每一組數據和結果都有一個控制文件,而所有的控制文件都放在一個目錄中。參數生成器方法將掃描此目錄並返回這些文件的列表。然後測試構造函數將讀取該文件並設置輸入數據和預期結果。

在我開始寫這篇文章之前,我想看看是否已經有工具可以做這種事情,如果沒有,請對我提出的解決方案提出一些看法。

應用程序本身是一個純粹的後端ETL類型工具,它從各種格式的多個輸入文件獲取數據並在數據庫中生成結果。我已經有了一些靜態集成測試,它們在內存數據庫中使用Derby來檢查輸入數據的瑣碎結果,並計劃使用類似的系統來確認數據。預期結果將以(key_value, column, expected value)三元組的形式出現。我想使用junit來與我們的測試和結果報告基礎架構的其餘部分聯繫起來。

回答

3

看看Spock,這是一個基於Groovy的測試框架,強大支持數據驅動的測試。 Spock專爲測試Java(和Groovy)代碼而設計,並且與JUnit完全兼容(事實上,Spock測試是使用JUnit運行的)。有關從數據庫中提取數據的簡單示例測試,請參閱here

一般來說,你的計劃對我來說聽起來很合理,也可以用簡單的JUnit和@Parameterized來實現。 Spock和Groovy雖然可以讓你的生活更輕鬆。例如,使用文本文件和數據庫在Groovy中比在Java中更容易。

聲明:我是Spock的創造者。