我想判断一个输入,然后根据该输入抛出一个异常. 也许像这样简单的东西:

when(myRepository.findById(any()))
  .thenThrow(new MyException(getArguments()[0]);

这样的事情是不可能的吗?如果没有,还有其他 Select 吗?

推荐答案

您可以通过thenAnswer call实现此行为:

when(myRepository.findById(any())).thenAnswer(invocationOnMock -> {
    throw new MyException(invocationOnMock.getArgument(0, String.class));
});

Java相关问答推荐

我们如何直接使用kerminldap服务票证来通过ldap进行身份验证并形成LDAP上下文

无法运行Java(已解决)

是否有一种格式模式,可以在除0之外的数字前面有正负符号?

ActivityCompat.请求收件箱自动拒绝权限

如何使用jooq generator将表名和列名映射为人类可读的?

为什么Java的代码工作(if condition内部的实例)

Jlink选项&-strie-ative-Commands";的作用是什么?

为什么一个Test的instance?& gt;在构造函数中接受非空对象?

Java中实现的归并排序算法给出ArrayIndexOutOfBound异常

Spring @Value default无法计算表达式

如何从日志(log)行中删除包名称?

Java泛型类方法的静态返回类型是否被类型擦除?

EXCEL中的公式单元格显示#NAME?

Java中HashSet的搜索时间与TreeSet的搜索时间

在Spring Boot JPA for MySQL中为我的所有类创建Bean时出错?

组合连接以从两个表返回数据

为什么我不能建立输入/输出流?Java ServerSocket

如何在Java中使用正则表达式拆分字符串

H2数据库仅支持%1个结果集?

Bash数组的单引号元素并使用空格连接