java - 我无法理解junit mockito测试中willThrow、doThrow的逻辑
问题描述
我有这段简单的代码,但无法理解它的逻辑和含义。
void findByIdThrows(){
given(addressRepository.findById(1)).willThrow(new RuntimeException("boom iii"));
assertThrows(RuntimeException.class, () -> servic.findById(1));
then(addressRepository).should().findById(1);
}
这是否意味着:如果您在查找 id #1 的地址期间遇到 RuntimeException,那么断言我将给出 RuntimeException?
最后一行(然后....)到底做了什么?
解决方案
第一行:
定义调用addressRepository.findById(1)
将抛出RuntimeException
第 2 行:
检查是否servic.findById(1)
抛出RuntimeException
第 3 行:
相当于:
verify(addressRepository).findById(1)
并检查是否addressRepository.findById(1)
被调用
推荐阅读
- javascript - IE 不支持箭头函数 (=>)
- linux - 如何从 Linux 终端在远程主机上运行命令
- angular - Docker 构建在 npm install 失败
- sql - 如何确保顺序 api 调用不会导致数据完整性问题
- linux - Qemu 和 LD_LIBRARY_PATH 变量
- node.js - 如何为类别设计 Firestore 数据模型?
- performance - 跨多个 docker-compose 项目的共享卷
- reactjs - React Hook useEffect 缺少依赖项。要么包含它,要么移除依赖数组 react-hooks/exhaustive-deps
- numpy - numpy 中的 sin 函数的值大于 1
- events - 最终一致性 - Axon 冲突解决器