2011-03-16 62 views
1

這是我面臨的問題。我一直負責通過負面測試測試一個軟件的查詢解析引擎。也就是說,我必須編寫大量失敗的查詢,並測試它們確實失敗,並且爲查詢中的特定錯誤提供預期的錯誤消息。這些在XML文件中定義。我已經爲這些測試用例的XML文檔和類結構類的解析寫了一個簡單的包裝器。現在JUnit動態方法調度?

,因爲我使用JUnit作爲一個測試框架,我運行到這個問題 - 通過所有這些外部定義的測試運行的行爲生活在一個單一的方法。如果單個測試失敗,則不會再運行。有沒有辦法在我遇到它時動態分配一個方法來處理每個測試?這樣,如果測試失敗,我們仍然可以運行其餘的測試,同時獲得關於什麼和沒有失敗的報告。

另一種方法是,當然,將所有JUnit測試的。我想避免這種情況的原因有很多,其中之一是要運行的測試數量非常大,測試用例是99%的樣板代碼。

謝謝。

+0

生成代碼;)hehe – ThomasRS

回答

1

你應該看看JUnit的參數標註。

+0

除非我誤解它,否則我仍然必須爲每個單獨的測試編寫一個方法。情況並非如此嗎? – rybosome

+0

我的帖子太倉促了 - 我誤解了@Paramaterized。我想這會讓我完成我想要的。謝謝您的幫助! – rybosome

0

如果我理解正確,輸入數據和預期結果全部用XML定義,那麼您不需要特定的代碼來處理每個測試用例?

如果使用JUnit4,你可以寫你自己的亞軍實現。您可以直接實施Runner或擴展ParentRunner。您需要實現的只是一個返回測試描述的方法,以及另一個運行測試的方法。