我有一個JUnit測試用例來測試一個簡單的類。基本上這個類只包含一個叫'sum'的方法,它返回兩個數字的總和。要測試這是否正確,我使用以下方法:Assert.assertEquals(2, my_object.sum(1, 2));
結果顯示在eclipse上的標籤中,名爲「Failure Trace」。該消息說:junit.framework.AssertionFailedError: expected:<2> but was:<3>
。是否有可能得到這個消息並把它放到一個String變量中?如何從JUnit assertEquals()方法獲取輸出並將其放入變量?
回答
從Java文檔的assertEquals將
Asserts that two objects are equal. If they are not, an AssertionError without a message is thrown. If expected and actual are null, they are considered equal.
你必須趕上AssertionError
當你的條件失敗。
試試這個代碼:
@Test
public void myTest() throws Exception{
String assertionError = null;
try {
Assert.assertEquals(2,3);
}
catch (AssertionError ae) {
assertionError = ae.toString();
}
System.out.println(assertionError);
}
OUTPUT:
java.lang.AssertionError: expected:<2> but was:<3>
有關Asse田訪問Java文檔的詳細信息:AssertionError和Assert
對不起,這是什麼意思? JUnit測試的想法是允許**自動**執行。整個框架的基礎是失敗的測試用例拋出AssertionErrors;並且運行所有測試的框架捕獲它們。當然,你可以自己去捕捉它們,但是如果你這樣做......你可以走完全九碼,並徹底拋棄所有的Junit測試。因爲你只是渲染**毫無價值**。 – GhostCat
@Jägermeister你是完全正確的。捕獲AssertionError沒有意義。由於OP已經提出了這個具體問題(他的作業),我已經回答了。 – Unknown
我得到了那部分;我只是想知道是否有更深層的意義,我錯過了。就像在家裏工作一樣;你會期望教師應該要求「合理」的事情要做;而不是要求學生以完全「破碎」的方式使用框架。 – GhostCat
assertEquals
是void
方法。你不能把結果放到變量中。但您可以通過try/catch
區塊獲得例外。
try{
assertEquals("foo", "foo1"); //will fail
} catch(AssertionError e){
String message = e.getMessage();
//do whatever you want with e
}
我試過了,但不起作用。事實上,當assertEquals失敗時,這並不會成功。下一行在失敗時不執行。 –
我的不好,修好了!問題是'AssertionError'沒有擴展'Exception' bu''錯誤'。所以最好趕上@Unknown建議的'AssertionError'。 –
- 1. 如何從hbase獲取價值並將其放入變量?
- 2. 如何從用戶獲取輸入並將其放入矩陣?
- 3. 獲取變量和其他放輸入
- 4. 獲取標準輸出值的一部分,並將其放入數組變量
- 5. 如何讀取控制檯的輸出並將其放入變量中?
- 6. 如何從Redis獲取值並將其放入NGiNX的變量中?
- 7. 從函數獲取值並將其放入輸入字段
- 8. 如何從輸入中獲取值並將其用作jQuery變量?
- 9. 如何從輸入框中獲取值並將其存儲在php變量中?
- 10. 獲取JSON對象值並將其放入一個Javascript變量
- 11. 獲取JSON數據並將其放入變量
- 12. 如何從文件讀取數據並將其放入變量並輸出到不同的文件。 Java
- 13. 獲取DCIM_PhysicalDiskView的PrimaryStatus並將其放入Powershell中的變量
- 14. 獲取遠程CSV文件並將其放入變量
- 15. 從變量獲取輸入並輸出到bash中的文件
- 16. 獲取所選文本並將其放入變量
- 17. 如何從表單輸入/輸出並將其存儲在JS變量中?
- 18. Bash腳本 - 獲取系統輸出並將其用作變量
- 19. 從輸出變量讀取COM方法?
- 20. 從ajax獲取價值並將其放置在變量中
- 21. 從管道捕獲輸出並將其存儲在變量中
- 22. 我如何從Firebase獲取數據並將其放入this.props - React
- 23. 如何從Nexpect方法獲取變量?
- 24. 如何獲取錯誤輸出並將其存儲在變量或文件中
- 25. 如何從網頁中提取字符串並將其放入PHP變量中
- 26. 如何獲取選定的廣播類型輸入並將其用作變量?
- 27. 如何獲取範圍輸入的值並將其傳遞給PHP變量?
- 28. (javascript)從輸入插入用戶名稱並將其放入對象變量
- 29. 如何從JTextField中取值並將其移入Int變量
- 30. 試圖獲取輸入/ getelementbyID或類,並將其放入richtextbox
你到底想幹什麼? – sisyphus
你爲什麼想這樣做? –
因爲我需要構建一個Web系統來評估使用JUnit測試用例作爲作業的類,並且我需要將此消息顯示給最終用戶。 –