声明时,本地对象的值会发生变化。如何获取与模拟对象相同的本地对象值。
例如:
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
答案 0 :(得分:2)
您尚未在equals()
类上定义ABC
,这意味着它会落到Object.equals()
,当且仅当它们是完全相同的对象时才返回true。
现在,在StrictExpectations
您创建了一个ABC
对象...并在assertEquals()
中创建了另一个对象。因此,他们永远不会平等。没有什么改变你;你只是处理两个不相等的独立物体。