在学习android测试时,我发现我可以多次使用“ then”。但是不了解可能有用的情况。例如
when(mockObject.add(any()))
.thenReturn(true,false)
.thenThrow(new IllegalArgumentException());
答案 0 :(得分:1)
这实际上定义了连续调用时发生的情况。第一次返回,下一次抛出。我不是这种行为的支持者(我认为它更干净一些,可以专门指定收益变化并尽可能接近调用),但是有时候在堆栈深处调用是不可避免的。
因此,基本上when(...).thenReturn(true).thenReturn(false)
第一次会返回true,然后会返回false。这与when(...).thenReturn(true, false)