java unit test

Theo thiết kế, JUnit không xác định thứ tự thực hiện lời gọi các phương thức test theo 1 thứ tự nào cả. Cho đến nay, những methods này đơn giản được gọi theo thứ tự được trả về bởi các hàm dịch ngược reflection API. Nhưng, việc sử dụng thứ tự JVM là không được khôn khéo do nền tảng Java không chỉ định bất kì một thứ tự cụ thể, và thực tế JDK 7 trả về 1 thứ tự ngẫu nhiên và chúng ta không thể kiểm soát được thứ tự mong muốn thực hiện test methods. Và bạn cần 1 thứ tự ưu tiên thì sao ?

Từ phiên bản JUnit 4.11 bạn có thể xác định được thứ tự ưu tiên thực thi các phương thức test bằng việc sử dụng annotations và đặt thứ tự theo tên của phương thức.

  • @FixMethodOrder(MethodSorters.JVM): Giữ các phương thức được thực hiện theo thứ tự trả về bởi JVM. Thứ tự này có thể thay đổi sau mỗi lần chạy (run to run).
  • @FixMethodOrder(MethodSorters.NAME_ASCENDING): Sắp xếp thứ tự thực thi bằng tên của phương thức, theo thứ tự từ điển.

Ví dụ:

import org.junit.Test;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyTest {

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

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

About The Author