2012-11-03 75 views
-2

下面的代碼是在類TestSegment的設置()方法:與對象的斷言的Java的junit測試

this.inputSource11 = new InputCell(1, 1); 
    this.activeSynapseObject = new Synapse(this.inputSource11); 
    this.inputSource11.setActiveState(true); 
    this.segmentObject.addSynapse(this.activeSynapseObject); 

以下是TestSegment的95行中的錯誤:

public void testGetSynapse() 
{ 
    assertEquals(
     this.activeSynapseObject, 
     this.segmentObject.getSynapse(inputSource11)); 
} 

+2

你能否介紹一些您認爲造成這種故障的代碼? – DSF

+2

您正在收到此錯誤,因爲'TestSegment'類中的第95行有一個JUnit斷言。這就是我們可以通過附件截圖得出的結論。 – Isaac

+0

你能分享你的斷言陳述嗎? –

回答

1

我的猜測是你已經把兩個對象放在斷言中。它們具有相同的值,但它們是不同的對象實例。我會建議你定義一個equals()在你的對象比較字段值方法assertEquals()依賴於equals方法如下:

public static void assertEquals(String msg, Object obj1, Object obj2) { 
    if (obj1 == null && obj2 == null) { 
     return; 
    } 

    if (obj1 != null && obj1.equals(obj2)) { 
     return; 
    } 

    fail(msg + " expected=" + obj1 + " actual=" + obj2); 
} 
+0

最近的問題更新(r2)後可能。恭喜,你的猜測是正確的;-) –