JMockit:声明时本地对象的值会发生变化

时间:2016-10-13 09:22:51

标签: junit4 jmockit

声明时,本地对象的值会发生变化。如何获取与模拟对象相同的本地对象值。

例如:

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());  

在使用jmockit编写junit测试用例时,我已经嘲笑了ABC的对象 但是在检查对象或断言的值时,abc的值会发生变化。

\s

}

在上面的测试用例中,abc的值正在改变。我显示错误

  

java.lang.AssertionError: ABC @ 3108bc   但是: ABC5fe33

1 个答案:

答案 0 :(得分:2)

您尚未在equals()类上定义ABC,这意味着它会落到Object.equals(),当且仅当它们是完全相同的对象时才返回true。

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