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