Junit中的异常测试

发表于:2017-2-14 10:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:pengshuangbao    来源:51Testing软件测试网采编

  前言
  在写单元测试的时候,经常会遇到需要断言方法需要抛出一个异常这种场景,这时,就会用到Junit的异常测试功能
  方式
  1.使用@Test注解自带的 expected 属性来断言需要抛出一个异常,如下:
@Test(expected = IllegalStateException.class)
public void testExpect() {
throw new IllegalStateException();
}
  在运行测试的时候,此方法必须抛出异常,这个测试才算通过,反之则反。
  2.使用ExpectedException类来进行打桩,我更喜欢这种方式,因为这种方式不仅能判断出指定的异常,并且还能对消息进行判断,并使用一些匹配器来匹配,比较灵活,如下
  先定义一个公共成员变量
  @Rule
  public ExpectedException thrown = ExpectedException.none();
  在方法中抛出异常
@Test
public void testThrown() {
thrown.expect(IllegalStateException.class);
thrown.expectMessage("illegal");
throw new IllegalStateException("illegal");
}
  还能够使用匹配器来匹配
@Test
public void testThrownMessageMatch() {
thrown.expect(IllegalStateException.class);
thrown.expectMessage(startsWith("illegal"));
throw new IllegalStateException("illegal xxx");
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号