放心:在 运行 所有测试之前等待一个条件
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);
}
我有一项服务,当它被加载时,所有信息都进入数据库需要一段时间(几分钟)。
如果我 运行 过早地进行测试,它们将因此失败(数据库中缺少项目)。
是否有一些 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);
}