JAVA入门之如何使用JUnit (二)

2025-05-09 11:41:32

1、JUnit 共有两个版本,JUnit 3 和 JUnit 4, 我们先看看这两者的区别, 后面我们会基于 JUnit 4 开发测试类,但会醑穿哩侬对 JUnit 3 进行兼容:在 JUnit 3 中,如果某个类是测试类,其必须继承框架提供的基类 TestCase,如果某个方法是测试方法,其方法名称必须以 test 开头,如果希望某个方法作为初始化方法,即任何测试方法运行前都先运行这个方法,则这个方法的名称必须是 setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是 tearDown 。JUnit 4,实现了对注解的支持,开发测试类非常方便! 测试类不需要继承任何基类,测试方法通过注解 @Test 来标识,初始化方法通过注解 @Before 来标识,释放资源的方法通过注解 @After 来标识 。综上,为了让我们在 JUnit 4 中开发的测试类在 JUnit 3 中也能使用,我们的测试方法同样以 test 开头,初始化方法也命名为 setup,释放资源的方法也命名为 tearDown !

2、明确我们要测试的业务类,并新建对应的测试类! 通常我们为所有测试类新建一个包,并且测试类的名称为 "Test+其测试的业务类名称" !

JAVA入门之如何使用JUnit (二)

3、编写测试类的初始化方法,初始化方法必须通过 @Before 注解进行标示,为了和 JUnit 3 进行兼容,其方法名称需要为 setUp !在初始化方法中,我们会创建业务类对象,如果需要生成自定义的测试报告文件,我们这里可能还需要创建对应的文件输出流对象, 反正任何初始化操作都在这里进行!

JAVA入门之如何使用JUnit (二)

4、编写测试方法,测试方法需要通过注解 @Test 进行标示,为了和 JUnit 3 兼容,其方法名称需要以 test 开头,通常我们的测试方法名称为 "test+待测试的业务方法名称"。对于测试方法,其中调用需要测试的业务类对应的方法,获得返回值后,调用 org.junit.Assert 断言类的静态方法对返回值进行检查校验! 如果一个业务方法没有返回值该怎么办呢 ? 比如某个业务方法就是往数据库中插入一条数据,但并未返回任何数据,那么我们在调用完业务方法后,需要连接数据库来尝试获取这条数据,再调用 Assert 相应的方法对这个获取结果进行校验!org.junit.Assert 断言类提供了很多种类的静态方法来对各种类型的返回结果进行校验!一个测试类中可以包含多个测试方法,这些测试方法在运行的时候会互相独立,最后给出各自的运行结果!

JAVA入门之如何使用JUnit (二)

5、编写测试特定异常的测试方法,对于某个业务方法,我们希望在某些特殊调用下,其需要薰殷邻休抛出特定的异常,那如何编写这样的测试方法呢?@Test 注解提供了一个 expected 参数,我们可以指定这个 expected 参数为特定的异常类来实现这种测试需求! 比如我们需要一个业务方法在某种调用下抛出 java.lang.ArithmeticException 异常,那么我们可以这样写注解 :@Test(expected=ArithmeticException.class)这样如果这个测试方法没有抛出ArithmeticException 异常,则测试失败,否则测试通过

JAVA入门之如何使用JUnit (二)

6、编写测试执行时间的测试方法,对于某些业务方法,我们期望其在一个特定时间内完成,那如何编写这样的测试方法呢?@Test注解提供了一个timeout参数,我们可以指定这个timeout 的值(毫秒)来限定这个业务方法的执行时间,如果在指定时间内完成,则测试通过,否则测试失败,比如我们希望一个业务方法在 4秒 内完成, 我们需要这样写注解 :@Test(timeout=4000)

JAVA入门之如何使用JUnit (二)

7、编写测试类的释放资源的方法,释放资源的方法必须通过@After注解进行标示,为了和JUnit 3进行兼容,其方法名称需要为tearDown! 任何在初始化方法中创建的资源如果需要释放比如文件输出流对象,都需要在这个方法中进行释放,比如关闭文件输出流对象!@After public void tearDown(){ // 释放任何在初始化方法中创建的资源对象,比如关闭文件输出流对象 }

8、运行测试类, 在测试类上右键,打开右键菜单,鼠标移到 "Run As" 弹出二级菜单,点击其中的 "JUnit Test" 即可运行整个测试类! 其中所有测试方法 (带有 @Test 注解) 都会逐个运行,并给出运行结果!在最后给出的运行结果中,我们可以看到一共运行了多少个测试方法,其中失败了几个,点击失败的测试方法,下方会给出具体的失败原因!

JAVA入门之如何使用JUnit (二)
JAVA入门之如何使用JUnit (二)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢