【发布时间】:2017-08-09 17:25:07
【问题描述】:
我正在使用 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 语句中。
【问题讨论】:
标签: java unit-testing mockito