【发布时间】:2013-02-03 21:17:00
【问题描述】:
当我使用 Mockito 编写单元测试时,我经常会发现我在一个注入的 mock 上调用了一个 getter,然后从返回的对象中调用一个方法。
到目前为止,我已经做了这样的事情:
@Mock
private Randomizer r;
@Mock
private Random random;
@InjectMocks
private NodeGenerator ng = new NodeGenerator();
@Test
public void nodeIsDuplicate() {
when(r.getRandom()).thenReturn(random);
when(random.nextInt(2)).thenReturn(1);
[...]
}
但不得不模拟随机数并为它设置第二个时间似乎是一种浪费。有什么方法可以让我的 when 语句更像:
when(r.getRandom().nextInt(2)).thenReturn(1);
不必模拟随机数,所以我可以只用我的 Randomizer 模拟在一行上完成所有操作?
【问题讨论】: