问题描述
我正在尝试在databaseService中对saveRecord(Record newRecord)方法进行存根,如果newRecord在field1属性中的值为“ OldValue”,则引发异常,如果field1属性中的值为“,则返回Record对象” UpdatedValue”。
public Record updateRecord(Record existingRecord) {
try {
if(existingRecord!= null) {
existingRecord.setField1("UpdatedValue");
Record newRecord = databaseService.saveRecord(existingRecord);
}
} catch (Exception e) {
e.printStackTrace();
}
return newRecord;
}
我尝试像这样对方法进行存根...
Record existingRecord = new Record();
existingRecord.setField1("OldValue");
Record newRecord = new Record();
newRecord.setField1("UpdatedValue");
Exception exception = new Exception("Failed");
doThrow(exception).when(databaseService).saveRecord(existingRecord);
doReturn(newRecord).when(databaseService).saveRecord(newRecord);
我也尝试过:
doAnswer(invocation -> {
Object argument = invocation.getArguments()[0];
if (argument.equals(existingRecord)) {
throw exception;
} else if (argument.equals(newRecord)) {
return newRecord;
}
throw new InvalidUseOfMatchersException(
String.format("Argument %s does not match",argument)
);
}).when(databaseService).saveRecord(any(Record.class));
没有运气。有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)