码迷,mamicode.com
首页 > 其他好文 > 详细

Junit中的异常测试

时间:2017-02-04 23:15:41      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:state   als   消息   比较   expected   class   ted   unit   前言   

前言

     在写单元测试的时候,经常会遇到需要断言方法需要抛出一个异常这种场景,这时,就会用到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");

     }

Junit中的异常测试

标签:state   als   消息   比较   expected   class   ted   unit   前言   

原文地址:http://www.cnblogs.com/pengshuangbao/p/6366478.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!