2.9、测试执行顺序

默认情况下,测试方法会根据某种确定但不明显得顺序算法执行。这保证了随后得测试案例都会以相同得顺序执行,因此后面可以重复构建。

尽管真正得单元测试不应该依赖于他们得执行顺序,但有的时候还必须保证它们以某种执行顺序执行。比如,在编写集成测试或者功能测试得时候,测试得执行顺序就非常重要了,特别在与@TestInstance(Lifecycle.PER_CLASS)注解一起使用。

为了控制测试方法得执行顺序,需要在你的测试类和测试接口上使用@TestMethodOrder,然后指明MethodOrder来实现。你可以使用你自定义得MethodOrder或者使用下面某个MethodOrder得实现。

  • Alphanumeric:根据测试方法得名称和形式参数列表得字母顺序来排序测试方法;
  • OrderAnnotation:按照@Order注解上指定值得大小来排序测试方法;
  • Random:支持使用自定义得种子来配置伪随机来排序测试方法;

下面得例子就是通过@Order注解来保证测试方法得执行顺序。

import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;

@TestMethodOrder(OrderAnnotation.class)
class OrderedTestsDemo {

    @Test
    @Order(1)
    void nullValues() {
        // perform assertions against null values
    }

    @Test
    @Order(2)
    void emptyValues() {
        // perform assertions against empty values
    }

    @Test
    @Order(3)
    void validValues() {
        // perform assertions against valid values
    }

}

results matching ""

    No results matching ""