Java Mock 抛出一个异常,然后返回一个值?
2022-09-03 14:12:45
我正在使用JUnit 4和Mockito 2。我试图模拟一种情况,即模拟函数在第一次调用时返回异常,并在随后的调用中返回有效值。我尝试简单地让一个后跟一个,但这显然不是正确的方法thenThrow()
thenReturn()
when(stmt.executeUpdate()).thenThrow(new SQLException("I have failed."));
when(stmt.executeUpdate()).thenReturn(1);
sut.updateValue("1");
verify(dbc).rollback();
sut.updateValue("2");
verify(dbc).commit();
但是,这两个调用都会导致对 rollback() 的调用,该调用位于 catch 语句中。