【发布时间】:2012-08-06 22:29:43
【问题描述】:
我有一个使用当前时间进行一些计算的函数。我想用 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());
}
可以模拟吗?我不想更改“已测试”代码以便进行测试。
【问题讨论】:
-
为什么不更改测试代码?更可测试的代码通常更松散耦合......你为什么不想要呢?
-
模拟一个新日期不是一个好策略......如果你想要另一个日期:-)
-
阅读我在stackoverflow.com/questions/11042200/… 上的回答,这是一个类似(但不相同)的问题。
-
@StephenC - 哈哈!在我意识到这是一个笑话之前,我不得不阅读你的评论大约 3 次。
标签: java unit-testing junit mocking mockito