我有一個函數使用當前時間進行一些計算。我想用mockito來嘲笑它。如何在Java中使用Mockito模擬新日期()
類的一個例子,我想測試:
public class ClassToTest {
public long getDoubleTime(){
return new Date().getTime()*2;
}
}
我想是這樣的:
@Test
public void testDoubleTime(){
mockDateSomeHow(Date.class).when(getTime()).return(30);
assertEquals(60,new ClassToTest().getDoubleTime());
}
是否有可能來嘲笑嗎?我不想更改「測試」代碼以便測試。
你爲什麼不改變測試代碼?更可測試的代碼通常更加鬆散耦合...爲什麼你不想要那個? – blank 2012-08-09 16:27:50
[Override Java System.currentTimeMillis]的可能重複(http://stackoverflow.com/questions/2001671/override-java-system-currenttimemillis) – 2012-08-09 16:30:43
...另一件事 - 更改'測試'的代碼很容易 - 你'當你犯了一個錯誤時,已經有測試告訴你 - 改變未經測試的代碼...另一方面,你需要邁克爾羽毛kung foo;) – blank 2012-08-09 16:46:40