JUnit4学习指导记录

什么是JUnit

JUnit是Java程序语言的单元测试框架,用于编写和可重复运行的自动化测试。

JUnit的特点

JUnit是一个开放的资源框架,用于编写和运行测试。
心提供注解来识别测试方法。
必提供断言来测试预期结果。
JUnit测试允许你编写代码更快,并能提高质量。
JUnit优雅简洁。没那么复杂,花费时间较少。
JUnit测试可以自动运行并且检查自身结果并提供即时反馈。所以也没有必要人工梳理测试结果的报告。
JUnit测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。
JUnit在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色

JUnit注解

package com.testcase;

import org.junit.*;

public class JUnit4DemoTest {


    @BeforeClass
    public static void beforeClasss(){
        System.out.println("BeforeClass");
    }

    @Before
    public void before(){
        System.out.println("before method");
    }

    @Test
    public void fun1(){
        System.out.println("fun1");
        System.out.println("Test测试注解,标记一个方法可以作为一个测试用例");
    }

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

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

    @AfterClass
    public static void afterClass(){
        System.out.println("AfterClass");
    }
}

结果

BeforeClass
before method
fun1
Test测试注解,标记一个方法可以作为一个测试用例
after method
before method
fun2
after method

Test ignored.
AfterClass

Process finished with exit code 0
package com.testcase;

import org.junit.Ignore;
import org.junit.Test;
@Ignore
public class JUnit4Demo2Test {

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

    @Test
    public void fun5(){
        System.out.println("fun5");
    }
    @Test
    public void fun6(){
        System.out.println("fun6");
    }
}

JUnit执行过程

利用IDEA中命令行来执行测试

mvn clean compile //清除之前target编译文件并重新编译
mvn clean test //对项目进行测试
mvn clean package //对项目进行打包(因为配置过插件,所以jar包是可执行的)
mvn clean install //安装项目,然后就可以使用了
java -jar *.jar //执行
mvn clean -Dt
est=com.testcase.JUnit4DemoTest//指定运行哪一个测试类

套件测试

运行器RunWith

概念:测试方法、测试类、测试集、测试运行器

测试方法:其中测试方法就是用@Test注解的方法
测试类:就是包含一个或多个测试方法的一个Test.java文件
测试集:是一个suite,可能包含多个测试集
测试运行器:决定了用什么方式偏好去运行这些测试集/类/方法
导入 org.junit.runner.RunWith ;
导入 org.junit.runners.Suite ;

@RunWith(套件。类)
 @ Suite.SuiteClasses({
   TestFeatureLogin 。类,
   TestFeatureLogout 。类,
   TestFeatureNavigate 。类,
   TestFeatureUpdate 。类
})

公共 类 FeatureTestSuite {
   //类保持为空,
  //仅用作上述注释的持有人
}

遇到问题参考

IDEA在terminal使用mvn命令

Maven项目管理(一) IntelliJ Idea+Maven环境搭建与基于命令行的基本使用

出现zsh: command not found: xxx解决方法
JUnit4单元测试入门教程

参考资料

JUnit官网
使用JUnit进行单元测试

JUnit入门demo代码

代码之后链接