【发布时间】:2011-06-01 14:31:26
【问题描述】:
我想模拟java.util.date 的默认构造函数,所以它不会构造
一个 Date 对象,表示它的创建时间,但始终是相同的 Date 对象(在我的示例中,低于 2010 年 12 月 31 日)。我尝试使用JMockit 和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!
}
}
}
【问题讨论】:
标签: java default-constructor jmockit