Я хочу запустить @BeforeAll< /code> для каждого тестового класса, чтобы повторно заполнить базу данных Redis известными данными. Метод BeforeAll должен быть статическим:
Код: Выделить всё
@BeforeAll
static void resetTestData() {
// use a static version of io.quarkus.redis.datasource.RedisDataSource; here
// so I can do something like:
// GraphCommands gc = ds.graph();
// gc.graphQuery(redisdbkey, "CREATE (:XXX {key:'abcd', name:'fred'})");
}
Код: Выделить всё
RedisDataSource ds = new RedisDataSource();
Я попробовал создать экземпляр Singleton следующим образом:
Код: Выделить всё
@Singleton
public class RedisDataSourceSingleton {
private static RedisDataSource instance;
@Inject
public RedisDataSourceSingleton(RedisDataSource ds) {
instance = ds;
}
public static RedisDataSource getInstance() {
if (instance == null) {
throw new IllegalStateException("RedisDataSource is not initialized yet.");
}
return instance;
}
}
Код: Выделить всё
import io.quarkus.redis.datasource.RedisDataSource;
// ...
@BeforeAll
static void resetTestData() {
RedisDataSource ds = RedisDataSourceSingleton.getInstance();
// use ds here
}
"Метод getInstance() из типа RedisDataSourceSingleton ссылается на отсутствующий тип RedisDataSource"
Есть ли способ получить статический экземпляр io.quarkus.redis.datasource.RedisDataSource, чтобы я мог использовать его методы в своем методе @BeforeAll? Я, наверное, слишком много думаю!
Спасибо,
Мюррей
Подробнее здесь: https://stackoverflow.com/questions/785 ... datasource
Мобильная версия