放心:在 运行 所有测试之前等待一个条件

REST assured: Wait for a condition before running all tests

我有一项服务,当它被加载时,所有信息都进入数据库需要一段时间(几分钟)。

如果我 运行 过早地进行测试,它们将因此失败(数据库中缺少项目)。

是否有一些 REST 保证功能可以处理它?或者我需要有自己的机制来做到这一点?

除非服务本身提供端点来检查其状态,否则 Rest-Assured 无法确定服务是否已启动。此外,Rest-Assured 不管理测试生命周期。

但是 JUnit 可以。您可以通过在 @BeforeAll@BeforeEach 方法中编写条件逻辑来实现您需要的功能,如下所示:

boolean serviceStarted = false;

@BeforeAll
public void waitForServiceStart(){
    try{
        // Wait for conditions here
        serviceStarted = true;
    }catch (Throwable e){
        // Process exception here
    }
}

@BeforeEach
public void makeSureEverythingIsReady(){
    Assumptions.assumeTrue(serviceStarted);
}