Mockito 如何模拟和断言抛出的异常? 断续器样式解决方案(更新到 Java 8)Mockito + Catch-Exception + AssertJ

2022-08-31 07:10:28

我在 junit 测试中使用 mockito。如何使异常发生,然后断言它具有(通用伪代码)


答案 1

首先回答你的第二个问题。如果您使用的是 JUnit 4,则可以使用

@Test(expected=MyException.class)

断言发生了异常。要“嘲笑”一个带有 mockito 的例外,请使用

when(myMock.doSomething()).thenThrow(new MyException());

答案 2

断续器样式解决方案(更新到 Java 8)

Mockito本身不是处理异常的最佳解决方案,将MockitoCatch-Exception一起使用

Mockito + Catch-Exception + AssertJ

given(otherServiceMock.bar()).willThrow(new MyException());

when(() -> myService.foo());

then(caughtException()).isInstanceOf(MyException.class);

示例代码

依赖


推荐