我想模拟它的默认构造函数,java.util.date
所以它不会构造一个Date
代表它创建时间的对象,但总是相同的Date
对象(在我的示例中,2010 年 12 月 31 日以下)。我尝试使用JMockit
and执行此JUnit
操作,但是在下面执行我的测试时,输出始终为Thu Jan 01 01:00:00 CET 1970
. 那么我的模拟有什么问题Date()
呢?
import java.util.Date;
import org.junit.*;
import mockit.*;
public class AppTest {
@Before
public void setUp() {
Mockit.setUpMocks(MockedDate.class);
}
@After
public void tearDown() {
Mockit.tearDownMocks();
}
@Test
public void testDate() {
Date today=new Date();
System.out.println(today.toString());
}
@MockClass(realClass=Date.class)
public static class MockedDate {
@Mock
public void $init() {
// Now should be always 31.12.2010!
new Date(110,11,31); //110 = 2010! 11 = December! This is sick!
}
}
}