Весеннее интеграционное тестирование с Schedulers.elastic - PullRequest
0 голосов
/ 10 января 2019

У меня есть следующий код пружинного реактора, который делает сохранение в БД через Schedulers.elastic (). Однако я вижу, что эластичная нить не заканчивается / фиксируется, пока не истечет 60 секунд (это время простоя). Так что мой интеграционный тест не пройден, если я не буду ждать этого времени. Есть лучший способ сделать это ? как использование Schedulers.immediate () для тестов и эластичного для фактического развертывания.

public void method() {
   Mono.just(student)
   .flatMap(student -> populateStudentDetails(student))
   .subscribeOn(Schedulers.elastic)
   .subscribe(studentRepository::save);
}

Я запускаю тест, как показано ниже

@SpringBootTest
public class TestClass {
   @Test
   void testMethod() {
        testClass.method();
        //assertForDatainDB
        //fails if immediately asserted
        //succeeds if asserted after 60s
   }
}

1 Ответ

0 голосов
/ 11 января 2019

По предложению Даррена Форсайта, я должен был включить StepVerifier.withVirtualTime, чтобы пройти тест

StepVerifier.withVirtualTime(() -> Mono.fromRunnable(() -> testClass.method())
  .verifyComplete();
...