JUnit 5 是否保证有序测试方法的 happens-before 关系?
Does JUnit 5 guarantee the happens-before relationship for ordered test methods?
我有时会使用以下注释来订购测试方法:@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
JUnit 5 是否保证这些 happens-before 关系?换句话说,测试方法的所有更改是否对所有后续测试方法可见?
这是我的具体用例,但我不确定它是否被认为是好的风格:
我有一个执行几个步骤的集成测试:1) 连接到服务器(即创建连接对象),2) 发出请求 1,3) 发出请求 2。这些请求的顺序很重要。我将这些步骤拆分为几个按顺序执行的 JUnit 测试方法。步骤 1) 将连接对象存储在静态字段中,以便步骤 2) 和 3) 可以访问它。我想知道我是否必须使步骤 1) 创建的连接对象可变,或者 JUnit 是否保证其在步骤 2) 和 3) 中的可见性)。
是的,JUnit 5 保证在其默认配置中发生先行关系,因为默认情况下 class 的所有测试都由 here.[=11 中记录的同一线程顺序执行=]
我有时会使用以下注释来订购测试方法:@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
JUnit 5 是否保证这些 happens-before 关系?换句话说,测试方法的所有更改是否对所有后续测试方法可见?
这是我的具体用例,但我不确定它是否被认为是好的风格:
我有一个执行几个步骤的集成测试:1) 连接到服务器(即创建连接对象),2) 发出请求 1,3) 发出请求 2。这些请求的顺序很重要。我将这些步骤拆分为几个按顺序执行的 JUnit 测试方法。步骤 1) 将连接对象存储在静态字段中,以便步骤 2) 和 3) 可以访问它。我想知道我是否必须使步骤 1) 创建的连接对象可变,或者 JUnit 是否保证其在步骤 2) 和 3) 中的可见性)。
是的,JUnit 5 保证在其默认配置中发生先行关系,因为默认情况下 class 的所有测试都由 here.[=11 中记录的同一线程顺序执行=]