のデフォルトコンストラクターをモックしたい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!
}
}
}