私はjavaのvertxで書かれた2つのマイクロサービスを持っています。イベントバス経由で通信します。 最初にメッセージを送信し、2番目にメッセージを受信します。応答を送信せずに非同期vertxイベントバスハンドラをテストする方法
最初のアイデア:ユニットテストでは、Vertxイベントバスメッセージに返信します。私はそのメッセージをテストしたい
はエラーなしに処理されているので、私は返事
eventbus.send("address", message, reply -> {
if (reply.succeeded()) {
context.async().complete();
} else {
context.fail();
}});
をチェック二microserviceにユニットテストを書く今、私は私の消費者に返信する必要がありますが、私がやりたいですそれはテストでのみ、私は生産で返信を送る必要はありません。私は生産の応答を送るためにCPUとネットワークを消費したくありません。だから私は探しています何、このようなものです:
vertx.eventBus().consumer("address", handler -> {
Boolean success = methodMayFail();
if (MY_CONTEXT_IS_TEST || HANDLER_IS_LOCAL_AS_I_ONLY_SENT_LOCAL_MESSAGES_FROM_TEST) {
success ? handler.reply("ok") : handler.fail();
}
});
セカンドアイデアがcdelmas comment後に来て、唯一のテストのためにコードを追加するには非常に悪い習慣ですmy own answer
第2の考えが実現しているように見えますか? – cdelmas