Ich möchte den Standardkonstruktor von java.util.date
mock, so dass es kein ein Date
Objekt darstellt, das die Zeit darstellt, als es erstellt wurde, aber immer das gleiche Date
Objekt (in meinem Beispiel unter 31 Dez 2010). Ich habe versucht, dies mit JMockit
und JUnit
, aber bei der Ausführung meiner Test unten ist die Ausgabe immer Thu Jan 01 01:00:00 CET 1970
. Also, was ist los mit meinem Mock von Date()
?Wie spottet man den Standardkonstruktor der Date-Klasse mit JMockit?
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!
}
}
}
ich das versucht, aber es gab mir einen 'Nullpointer bei AppTest $ MockedDate. $ Init (AppTest. Java) bei java.util.date. '. –
asmaier
Seltsam, ich habe es gerade versucht und es funktioniert, mit aktuellen jmockit. – fdreger
Hallo, kann ich ein anderes Date-Objekt auf "it" setzen? 'it = neues Datum (...)' –