Модульное тестирование потребителей в 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.