Mock框架的两个核心点
设置 Mock 对象
核心点
参数是什么样的以及对应的处理是什么样的
Mock对象\
TaskRepository repository = mock(TaskRepository.class);
Mock行为\
when(repository.save(any())).then(returnsFirstArg());
when(repository.save(any())).thenThrow(IllegalArgumentException.class);
校验对象行为
Verify 校验接口背调用了几次
测试应该测试的是接口行为,而不是内部实现。所以,verify 虽好,还是建议少用。如果
有一些场景不用 verify 就没有什么可断言的了,那该用 verify 还是要用。
verify(repository, atLeast(3)).save(any());