单元测试中多次调用同一方法并返回不同的值要怎么去实现呢 我每次写的时候都会覆盖上导致只获取到一个返回值
示例代码如下
@SpringBootTest(classes = Answer7685623.class)
public class Answer7685623 {
@Test
void testTwice() {
List mockList = Mockito.mock(List.class);
Mockito.when(mockList.get(Mockito.eq(1))).thenReturn("AAA");
Mockito.when(mockList.get(Mockito.eq(2))).thenReturn("BBB");
Mockito.when(mockList.get(Mockito.eq(3))).thenThrow(new IllegalArgumentException());
Assertions.assertEquals("AAA", mockList.get(1));
Assertions.assertEquals("BBB", mockList.get(2));
Assertions.assertThrows(IllegalArgumentException.class, () -> mockList.get(3));
}
}
如果还有疑问,可以随时沟通。
如有帮助,请采纳,十分感谢!
使用Mockito 框架可以做,参考
1)自己编码实现
2)码字不易,是你的意思,请采纳,写得不好,勿喷!多谢理解
/**
* @author pcj
* @date 2022/4/8
* @note
*/
public class Test {
@org.junit.Test
public void testMe(){
String retS = "ok";
try {
//1)调用该方法返回空指针异常
//Me(null);
//2) 调用该方法抛出被0除异常
Me(0);
}catch (Exception ex){
ex.printStackTrace();
retS = ex.getMessage();
}
System.out.println(retS);
}
/**
* 这里面写你的service方法调用
*/
public void Me(Integer integer){
Integer i = 1000/integer;
}
}