我们决定对userId的某些边界情况进行异常处理(比如userId必须大于0,不然就抛出异常)
class FuncService {
@Autowired
private IUserDao userDao;
public static final String EXCEPTION_USER_ID_INVALID = "userId should be positive";
public String userCharacter(final Long userId) throws Exception {
// 假设userId必须大于0,否则我们抛出一个异常
if (userId < 0) {
throw new Exception(EXCEPTION_USER_ID_INVALID);
}
final String character = userDao.selectUserCharacterById(userId);
return character;
}
}
这时候我们需要用到Assertions.assertThrows方法
@RunWith(PowerMockRunner.class)
@MockitoSettings(strictness = Strictness.LENIENT)
@PrepareForTest({FuncService.class, IUserService})
@PowerMockIgnore({
.... //省略
})
class FuncTest {
@Spy
@InjectMocks
private FuncService funcService = PowerMockito.spy(new