2016-10-13 24 views
0

本地对象的值在声明时发生变化。如何获得与模拟对象相同的本地对象值。JMockit:本地对象的值在声明时发生变化

例如

enter code here 
public void checkStatus() 
{ 
ABC abc = new ABC(); 
// line of code 
} 

在写使用jmockit我已经嘲笑ABC 的对象JUnit测试用例但是当检查对象或断言的值,ABC的值被得到改变。

enter code here 
@Test 
public void checkStatusTest(@Mocked ABC abc) 
{ 
    new StrictExpectations() 
    { 
     new ABC(); 
     result = abc; // here value of abc is getting changed 
     times=2; 
    } 
} 
    someobject.checkStatusTest(); 
    assertequals(abc,new ABC()); 

}

在上述测试用例ABC的值被得到改变。我表示

java.lang.AssertionError:[email protected] but was:ABC5fe33

回答

2

您没有在ABC类,这意味着它落空至Object.equals()当且仅当它们是完全相同的对象返回true定义equals()错误。

现在,在StrictExpectations中,您创建了一个ABC对象......并在assertEquals()中创建了另一个对象。因此,他们永远不会平等。没有什么改变你的;你只是处理两个不相等的独立对象。

相关问题