Модульное тестирование потребителей в Vertx

У меня есть фрагмент кода, который я хочу пройти модульное тестирование.

this.vertx.eventBus().consumer(VERTICLE_ID).toObservable()
        .subscribe(msg -> doSomethingCool());

и мой потребительский метод:

 private void doSomethingCool(){ 
  // Some cool stuff.
 }

Теперь я хочу выполнить модульный тест doSomethingCool() без использования powermockito (я хочу иметь покрытие кода), и я не хочу, чтобы мой метод был видимым (общедоступным). Как я могу это сделать? Любой хук в Vertx, чтобы сделать это?

1 ответ

На самом деле трудно сказать, как вы должны написать свой тест, если ничего не известно о цели doSomethingCool

  • Это возвращает значение? (т.е. через msg.reply())
  • Изменяет ли это состояние Verticle? или глобальное государство?
  • Это делает нисходящий вызов?
  • Ваш метод вызывает обработчик, как только он закончил с тем, что он делает?

Модульный тест должен подтвердить наблюдаемый результат. Так что напишите свой тестовый модуль, чтобы проверить один из этих результатов. В случае, если вызывается обработчик, вы можете работать с vertxunit TestContext и отсчитывать асинхронность.

... и держись подальше от Powermockito.

Другие вопросы по тегам