2012-11-03 47 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)后可能。恭喜,你的猜测是正确的;-) –