用 IDEA 进行Junit单元测试

操作步骤

  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()测试成功");
    }

}

测试结果

测试成功的结果:

测试成功

测试失败的结果:

测试失败

Junit 5总结

注解

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

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

@Test进行单元测试

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

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

断言

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

猜你喜欢

转载自blog.csdn.net/qq_42907802/article/details/105699931