用 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(預期結果,實際測試結果,報錯信息)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章