欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用IDEA进行Junit单元测试

程序员文章站 2022-07-14 10:41:52
...

操作步骤

  1. IDEA建一个Maven工程
  2. 添加Junit依赖
  3. 编写简单类
  4. 生成测试类
  5. 查看测试结果

添加Junit依赖

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.5.2</version>
    <scope>test</scope>
</dependency>

本例用Junit 5进行单元测试

简单类

public class Student {

    /**
     * id : 20171004024
     * name : Vigilr
     * Java : 99.0
     * Python : 98.0
     * JavaScript : 97.0
     */

    private long id;
    private String name;
    private double Java;
    private double Python;
    private double JavaScript;

    public Student() {
        this.id=123456789;
        this.name="张三";
        this.Java=60.0;
        this.Python=60.1;
        this.JavaScript=59.9;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("Student{");
        sb.append("id=").append(id);
        sb.append(", name='").append(name).append('\'');
        sb.append(", Java=").append(Java);
        sb.append(", Python=").append(Python);
        sb.append(", JavaScript=").append(JavaScript);
        sb.append('}');
        return sb.toString();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getJava() {
        return Java;
    }

    public void setJava(double Java) {
        this.Java = Java;
    }

    public double getPython() {
        return Python;
    }

    public void setPython(double Python) {
        this.Python = Python;
    }

    public double getJavaScript() {
        return JavaScript;
    }

    public void setJavaScript(double JavaScript) {
        this.JavaScript = JavaScript;
    }

    /**
    * 计算学生成绩总分
    *
    * @return double
    * @since 2020/4/22        
    */ 
    public double sum() {
        return this.Java + this.Python + this.JavaScript;
    }
}

本类通过GsonFormat直接生成setter,getter方法,然后编写构造方法和计算总成绩方法。

测试类

快捷键Ctrl+Shift+T创建测试类

class StudentTest {

    Student stu = null;

    @BeforeEach
    void setUp() {
        stu = new Student();
        System.out.println("开始单元测试");
    }

    @AfterEach
    void tearDown() {
        System.out.println("结束单元测试");
    }

    @Test
    void getId() {
        System.out.println("getId():" + stu.getId() + ",测试成功");
    }

    @Test
    void setId() {
        stu.setId(654321);
        assertEquals( 654321,stu.getId(),"setId()方法异常");
        System.out.println("setId()测试成功");
    }

    @Test
    void getName() {
        System.out.println("getName():" + stu.getName() + ",测试成功");
    }

    @Test
    void setName() {
        stu.setName("李四");
        assertEquals(stu.getName(), "李四");
        System.out.println("setName()测试成功");
    }

    @Test
    void getJava() {
        System.out.println("Java成绩为"+stu.getJava()+",测试成功");
    }

    @Test
    void setJava() {
        stu.setJava(99.9);
        assertEquals(99.9,stu.getJava(),"setJava()方法异常");
        System.out.println("setJava()测试成功");
    }

    @Test
    void sum() {
        assertEquals( 180,stu.sum(),"sum()方法异常");
        System.out.println(stu);
        System.out.println("张三总分为180,sum()测试成功");
    }

}

测试结果

测试成功的结果:

用IDEA进行Junit单元测试

测试失败的结果:

用IDEA进行Junit单元测试

Junit 5总结

注解

@BeforeAll只执行一次,在所有测试和 @BeforeEach 注解方法之前。

@BeforeEach在每个单元测试执行之前执行。

@Test进行单元测试

@AfterEach在每个单元测试执行之后执行。

@AfterAll只执行一次,最后执行

断言

基本用法:assertEquals(预期结果,实际测试结果,报错信息)