添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Random mockRandom = mock(Random.class); when(mockRandom.nextInt()).thenThrow(new RuntimeException("异常")); try { mockRandom.nextInt(); Assert.fail(); // 上面会抛出异常,所以不会走到这里 } catch (Exception ex) { Assert.assertTrue(ex instanceof RuntimeException); Assert.assertEquals("异常", ex.getMessage()); thenThrow 中可以指定多个异常。在调用时异常依次出现。若调用次数超过异常的数量,再次调用时抛出最后一个异常。 import org.junit.Assert; import org.junit.Test; import static org.mockito.Mockito.*; import java.util.Random; public class MockitoDemo { @Test public void test() { Random mockRandom = mock(Random.class); when(mockRandom.nextInt()).thenThrow(new RuntimeException("异常1"), new RuntimeException("异常2")); try { mockRandom.nextInt(); Assert.fail(); } catch (Exception ex) { Assert.assertTrue(ex instanceof RuntimeException); Assert.assertEquals("异常1", ex.getMessage()); try { mockRandom.nextInt(); Assert.fail(); } catch (Exception ex) { Assert.assertTrue(ex instanceof RuntimeException); Assert.assertEquals("异常2", ex.getMessage()); 对应返回类型是 void 的函数,thenThrow 是无效的,要使用 doThrow。