Ho una funzione che utilizza l'ora corrente per fare alcuni calcoli. Mi piacerebbe deriderlo usando il mockito.Come beffe new Date() in Java utilizzando Mockito
Un esempio di classe mi piacerebbe provare:
public class ClassToTest {
public long getDoubleTime(){
return new Date().getTime()*2;
}
}
mi piacerebbe qualcosa di simile:
@Test
public void testDoubleTime(){
mockDateSomeHow(Date.class).when(getTime()).return(30);
assertEquals(60,new ClassToTest().getDoubleTime());
}
E 'possibile prendere in giro così? Non vorrei cambiare il codice "testato" per essere testato.
Perché non dovresti cambiare il codice testato? Il codice che è più testabile è generalmente più strettamente accoppiato ... perché non vorresti quello? – blank
possibile duplicato di [override Java System.currentTimeMillis] (http://stackoverflow.com/questions/2001671/override-java-system-currenttimemillis) –
... e un'altra cosa - codice 'testato' che cambia è facile - si' ve test avuto modo di dirvi quando hai fatto un errore - la modifica del codice non-testata d'altra parte ... hai bisogno di Michael Feathers kung foo;) – blank