我試圖寫下面的Java代碼JUnit測試案例:用於stmt的JUnit測試用例if(obj == null)返回false;
private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
if (!(obj instanceof Crop))
return false;
Crop other = (Crop) obj;
if (obj == null) return false;
if (this == obj) return true;
if (__equalsCalc != null) {
return (__equalsCalc == obj);
}
}
測試用例我沃特低於:
public void testCrop() {
Crop cp = new Crop();
Object obj = false;
cp.equals(obj);
assertSame(obj instanceof Crop, false);
}
public void testCrop1() {
Crop other = (Crop) obj;
// assertSame(other.equals(obj), true);
assertEquals(obj, other);
}
的測試用例instanceof
工作正常,但在檢查if(obj == null) return false;
測試用例失敗:
請澄清你的問題。如何定義'obj'?測試的失敗信息是什麼?注意事項:使用assertSame來測試布爾值不是很乾淨。使用assertTrue()和assertFalse()。當您已經測試過instanceof時,不需要測試null值。 null不是任何事物的實例。但最重要的是:爲了測試你的類的equals方法,你至少應該在測試中調用它並驗證結果是否符合你的期望。你在測試中不這樣做。 – 2013-05-10 14:32:46
private java.lang.Object __equalsCalc = null; public synchronized boolean equals(java.lang.Object obj){if(!(obj instanceof Crop))return false; Crop other =(Crop)obj; if(obj == null)返回false;如果(this == obj)返回true; if(__equalsCalc!= null){return(__equalsCalc == obj); } – user1824878 2013-05-10 15:25:28
測試通過,但是當我嘗試編碼覆蓋時,它顯示紅色的傳遞線(這意味着不包括在內)。 – user1824878 2013-05-10 15:27:21