2013-02-01 73 views
2

我目前正在調查我們有的JPA問題。我想出了兩個可能的解決方案來解決這個問題。我寫了一組單元測試,顯示每種解決方案如何解決問題。在測試每個解決方案期間,我發現一個解決方案無效如何記錄某些測試用例故意失敗?

現在我想要文件爲什麼那個具體的解決方案不會做這個工作。我可以重寫單元測試,我現在有,預計例外。但是,例外只是該解決方案潛在問題的症狀。所以我創建了一個新的單元測試,清楚地表明瞭這一點,該解決方案與JPA規範衝突。不過,我想保留那些其他失敗的測試作爲這種解決方案可能出現的症狀的文檔。所以我可以禁用它們,並將javadoc放在它們上面,說它們因爲特定的測試用例而被禁用。

請注意,我不想失敗的測試用例。否則,我也可以使用assumes

是否有任何其他的方式,我可以如何記錄一些測試不需要執行,因爲他們會失敗,因爲另一個測試記錄真正的問題是成功的?

我被限制爲使用junit來解決我的問題。

編輯:
關於迄今爲止的意見和答案,我寧願類別,因爲測試仍然是可執行的,沒有任何變化,如果有人希望他們能夠被執行。我仍然關心的是代表問題症狀的測試與真實原因的更強關聯。那現在只是一個從症狀測試到真正原因測試的javadoc鏈接。

+3

難道你不能使用[類別](http://kentbeck.github.com/junit/doc/ReleaseNotes4.8.html)並將這些測試放在一個「未通過目的」的類別中在你正常的單元測試會話中? – assylias

回答

2

使用@Ignore,與消息:

@Test 
@Ignore("This fails because of a problem with the specification") 
public void testWhichFails() { 
} 

此測試將無法運行,你就會知道爲什麼爲好。

+0

我終於選擇了,因爲它是最簡單的,而且測試不需要每次都運行。當JPA提供者或其版本發生變化時,它們只對我而言很重要。我還指出了從被忽略的測試的javadoc中顯示真正問題的測試。 – SpaceTrucker