使用多个then-in-test Android的示例
在学习android测试时,我发现我可以多次使用“then”。但我不明白在哪些情况下这可能会有帮助。比如说使用多个then-in-test Android的示例,android,unit-testing,mockito,Android,Unit Testing,Mockito,在学习android测试时,我发现我可以多次使用“then”。但我不明白在哪些情况下这可能会有帮助。比如说 when(mockObject.add(any())) .thenReturn(true,false) .thenThrow(new IllegalArgumentException()); 这实际上定义了在连续调用时发生的情况。第一次返回,下一次抛出。我不喜欢这种行为,我认为它可以更明确地指定返回中的更改,并且尽可能接近调用,但有时调用会深入堆栈,这是不可避免的 所以基本上当…then
when(mockObject.add(any()))
.thenReturn(true,false)
.thenThrow(new IllegalArgumentException());
这实际上定义了在连续调用时发生的情况。第一次返回,下一次抛出。我不喜欢这种行为,我认为它可以更明确地指定返回中的更改,并且尽可能接近调用,但有时调用会深入堆栈,这是不可避免的
所以基本上当…thenReturntrue.thenReturnfalse将在第一次返回true,然后返回false。这与当…然后返回True,false时相同但为什么他在得到结果后抛出异常?我怎么知道?这取决于他在测试什么。也许他在模拟一个数据流,只有两个元素。这可能是正确行为的原因有数百个,或者只是试图理解流程。在第一步添加任何数据后,他如何检索三个不同的结果?真/假/例外?方法的结果是一。或者它是一个异常,但异常并没有发生,然后它作为第一个结果发生。对吧?一切都井然有序。第一次调用时,它返回true。第二,错误。第三,它抛出了一个exceptionOk,所以请确认我理解正确,它进行了3次迭代,并分别检查了3个场景?像这样当->比真/当->比假/当->比异常?