junit4测试框架

一、junit4测试框架

1.junit4测试框架配置

(1)创建maven项目,pom.xml文件里导入依赖如下:

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

(2)导入jar包
点击 File -> Project Structure,点击Project Structure界面左侧的“Modules”显示下图界面。
在 “Dependencies” 标签界面下,点击右边绿色的 “+”号,选择第一个选项“JARs or directories…”,选择相应的jar包(IDEA的安装目录\lib\junit-4.12.jar,hamcrest-core-1.3.jar,junit.jar),点“OK”,jar包添加成功。
在这里插入图片描述

(3)方便测试case管理可在src->test->java下创建package,然后添加class。

2. junit常用注解

(1)@Test
表示使用此注解的方法为一个单元测试用例,在一个测试用例中可以多次声明此注解,每个注解为@Test的方法只被执行一次。

(2)@BeforeClass
表示使用此注解的方法在测试类被调用之前执行,在一个测试类中只能声明此注解一次,此注解对应的方法只能被执行一次。

(3)@AfterClass
表示使用此注解的方法在测试类被调用结束退出之前执行,在一个测试类中只能声明此注解一次,并且此注解对应的方法只能被执行一次。

(4)@Before
表示使用此注解的方法在每个@Test调用之前被执行,即一个类中有多少个@Test注解方法,那么@Before注解的方法就会被调用多少次

(5)@After
表示使用此注解的方法在每个@Test调用结束之后被执行,即一个类中有多少个@Test注解方法,那么@Before注解的方法就会被调用多少次。

(6)@Ignore
表示使用此注解的方法为暂时不执行的测试用例方法,会被JUnit忽略执行。

举例:

package com.testcase;

import org.junit.*;

public class Junit4Test {
    @BeforeClass
    public static void beforeClass(){
        System.out.println("before class");
    }
    @Before
    public void beforeFun(){
        System.out.println("fun before");
    }
    @Test
    public void fun1(){
        System.out.println("fun1 test");
    }

    @Test
    public void fun2(){
        System.out.println("fun2 test");
    }

    @Test
    @Ignore
    public void fun3(){
        System.out.println("fun3 test");
    }

    @After
    public void afterFun(){
        System.out.println("fun after");
    }

    @AfterClass
    public static void afterClass(){
        System.out.println("after class");
    }
}
输出:
before class
fun before
fun1 test
fun after
fun before
fun2 test
fun after

Test ignored.
after class

3.运行器RunWith

(1)概念了解
测试方法:测试方法就是用@Test注解的一些函数。
测试类:包含一个或多个测试方法的一个**Test.java文件。
测试集:指一个suite,可能包含多个测试类。
测试运行器:决定了用什么方式偏好去运行这些测试集、类、方法。

(2)常见运行器
@Runwith 指放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认的运行器。

@RunWith(Parameterized.class)参数化运行器,配合@Parameters使用JUnit的参数化功能

@RunWith(Suite.class) @SuiteClasses({Atest.class,Btest.class,Ctest.class})测试集运行器配合使用测试集功能。

@RunWith(JUnit4.class),junit4的默认运行器。

@RunWith(JUnit28ClassRunner.class),用于兼容junit3.8的运行器。

一些其他运行器具备更多功能,例如@RunWith(SpringJUnit4Class)集成了spring的一些功能。

(3)套件测试
“套件测试”是指捆绑了几个单元测试用例并运行起来。在JUnit中,@RunWith和@Suite这两个注解是用来运行套件测试。
可新建一个package作为suite,示例如下:
testcase存放测试case,suite01存放suit运行套件。
在这里插入图片描述
在SuiteDemo01Test里面可以将需要测试的测试类按顺序放入,格式如下:
@RunWith(Suite.class)
@Suite.SuiteClasses({
LoginTest.class,
SearchTest.class
})
public class SuiteDemo01Test {

}
在这里插入图片描述


版权声明:本文为xuqide77原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。