我必須測試,我的類的方法返回一個值不同於zero.my問題是,我不知道我必須使用的斷言。只有assertEquals但不是assertNotEquals.how我可不可以做?其中斷言與使用junit
回答
我想你使用JUnit3(或更高版本),並且你想測試int i != 0
。您應該使用:
import junit.framework.TestCase;
public class Tests extends TestCase {
public void testMe(){
int i = 4;
assertNotSame("msg on fail", i, 0);
}
}
使用assertNotSame
進行測試不相等。 使用assertNotNull
爲o != null
請勿使用assertNotSame來測試原始值。在JUnit中,assertSame和assertNotSame測試用於測試兩個對象引用(變量)是否指向內存中完全相同的對象。如果將它與原始值一起使用,Java會將原始值自動裝入新的Number對象(如Integer和Long),並且它們可能會不同,因此即使數字值相同,assertNotSame也會始終成功。 – Bobulous 2012-07-14 11:55:15
當我運行下面的測試時,它失敗了,所以我認爲你的最後一點不可能一直是正確的。但我看到有時可能會有問題。 'public void testMe(){int_i = 4; assertNotSame(「msg on fail」,i,4); }' – Simulant 2012-07-14 21:21:15
Hamcrest是你的朋友在這裏。使用
assertThat(currentValue, not(equalTo(0)))
這是可讀的,並在失敗的情況下產生體面的消息。
- 1. 斷言與JUnit斷言
- 2. 使用斷言使用JUnit
- 3. JUnit Hamcrest斷言
- 4. JUnit斷言
- 5. JUnit斷言:使花車
- 6. 異常斷言連同其他斷言jUnit
- 7. JUnit的測試方法使用斷言
- 8. 從rspec中斷言斷言與斷言
- 9. 有線JUnit測試斷言
- 10. 使用Promise.all與斷言
- 11. JUnit斷言是否被禁用?
- 12. GWTTestCase:回調中JUnit斷言提高JavaScriptException
- 13. 斷言在junit中float的不等式
- 14. Node.js的斷言庫與其他斷言庫
- 15. cucumber-Junit斷言失敗 - 它無法斷言'£'sybmol
- 16. JUnit或Hamcrest是否有寬容斷言?
- 17. JUnit的延遲斷言消息創建
- 18. JUnit - 斷言錯誤不會傳播
- 19. 如何斷言有效的HTML每jUnit
- 20. 的Java:在JUnit的斷言使用記錄器*
- 21. JUnit的斷言空 - 使用存根和嘲笑
- 22. 與對象的斷言的Java的junit測試
- 23. 使用斷言在Java中
- 24. 使用斷言與包含在groovy
- 25. 斷言在JUnit中調用回調/偵聽器
- 26. C# - ;使用斷言
- 27. 如何在JUnit中斷言兩個雙打在Epsilon中使用assertEquals?
- 28. python斷言與-O
- 29. C++ static_cast與斷言
- 30. 與點式斷言
http://stackoverflow.com/questions/1096650/why-doesnt-junit-provide-assertnotequals-methods – 2012-07-13 08:34:08
我使用JUnit 4.10,當我嘗試assertThat用它告訴我,是與否都沒有發現了。我輸入了org.harmcrest.where是錯誤的? – Mazzy 2012-07-13 08:48:53
@Mazzy - FYI,你應該1)剪切/粘貼確切的錯誤信息,2)發佈你的代碼,3)指定你的JUnit版本。這有助於*給你一個準確的答案。恕我直言... – paulsm4 2012-07-13 19:41:32