В моем проекте в основном весь импорт ретранслируется при io.vertx.reactivex.core.Vertx
импорте пакетов, эффективно заставляет весь проект использовать reactivex
(не core
/ vanilla) версию Vertx и ее версии. Я начал немного тестировать наше приложение и сделать так, чтобы он хорошо работал с JUint, в соответствии с этой документацией необходима следующая настройка, чтобы использовать JUnit и запускать тестовые примеры в правильном контексте потока и вертикали. :
@RunWith(VertxUnitRunner.class) /* Set the runner */
public class DaoTest {
@Rule /* Define rule to get vertx instance in test */
public RunTestOnContext rule = new RunTestOnContext();
@Test
public void exampleTest(TestContext context) {
TestClass t = new TestClass(rule.vertx());
}
}
определение TestClass
следующее:
import io.vertx.reactivex.core.Vertx; /* Mind here */
public class TestClass {
public TestClass(Vertx vertx) {
/* Something */
}
Я не могу предоставить правильный экземпляр Vertx
, поскольку в пакете io.vertx.ext.unit.junit
существует только одно определение RunTestOnContext
, которое создает экземпляр io.vertx.core.Vertx
, что несовместимо с io.vertx.reactivex.core.Vertx
, используемым TestClass
. Некоторые другие тестовые утилиты, такие как TestContext, имеют свои эквиваленты в reactivex
пакетах io.vertx.reactivex.ext.unit.TestContext
, но, похоже, это не относится к RunTestOnContext
.
Вопрос заключается в том, как правильно получить io.vertx.reactivex.core.Vertx
экземпляр в тестовом контексте, чтобы обеспечить согласованность потоков и контекста?