我有一个 JUnit 5 测试,其中包含按顺序执行的多个步骤。这些步骤是在单独的方法中定义的。
我希望测试在夹具/类中第一次失败时停止执行。
这是在 Spock 中可以通过使用@Stepwise注释来实现的行为。我不明白如何在 JUnit 5 中完成此操作。
编辑:添加示例测试
@TestMethodOrder(Alphanumeric.class)
class MainTest {
@Test void test1() {
assertTrue(true);
System.out.printf("%d test 1 - ok%n", System.currentTimeMillis());
}
@Test void test2() {
assertTrue(false);
System.out.printf("%d test 2 -nok%n", System.currentTimeMillis());
}
@Test void test3() {
assertTrue(true);
System.out.printf("%d test 3 - ok%n", System.currentTimeMillis());
}
@Test void test4() {
assertTrue(true);
System.out.printf("%d test 4 - ok%n", System.currentTimeMillis());
}
}
Run Code Online (Sandbox Code Playgroud)
给出以下结果:
1596054675044 test 1 - ok
1596054675075 test 2
org.opentest4j.AssertionFailedError:
Expected :true
Actual :false …Run Code Online (Sandbox Code Playgroud) 我想为 params 数组中的每个参数发出一个 get 请求。网址是静态的。有没有办法为每次迭代重用我的自定义 http 客户端?我不想为每个请求重置标头。理想情况下,我想client.Do(param)为每次迭代做类似的事情。
client := &http.Client{}
for _, param := range params {
uri := url + param
req, err := http.NewRequest(http.MethodGet, uri, nil)
req.Header.Add("Cookie", cookie)
resp, _ := client.Do(req)
defer resp.Body.Close()
// do something...
}
Run Code Online (Sandbox Code Playgroud)