在模拟一个类一次和在测试中模拟一个类两次时,我得到不同的输出。我知道@Mocked 模拟了一个类的所有实例,但不确定为什么模拟不止一次会影响新创建对象的输出。这种行为是预期的吗?
测试 1. 打印10:
@Test
public void jmockitTest1(@Mocked final Date d1)
{
new NonStrictExpectations()
{{
d1.getTime(); returns(10L);
}};
System.out.println( d1.getTime() ); // prints 10
System.out.println( new Date().getTime() ); // prints 10 !
}
使用第二个模拟日期进行测试 2。打印0:
@Test
public void jmockitTest2(@Mocked final Date d1, @Mocked final Date d2)
{
new NonStrictExpectations()
{{
d1.getTime(); returns(10L);
}};
System.out.println( d1.getTime() ); // prints 10
System.out.println( new Date().getTime() ); // prints 0 !
}