メッセージキュー(JMS)をモックまたはシミュレートする 質問する

メッセージキュー(JMS)をモックまたはシミュレートする 質問する

形式と内容が確実にわかっているメッセージ (テキスト) があります。
現時点では、このメッセージを解析してファイルから読み取る Java クラスが実装されています。

現実世界では、このメッセージはメッセージ キューから送信されます。

今のところ、テスト目的でローカル PC 上でメッセージ キューをシミュレート、モック、または生成する必要があります。

Java仕様(ジャバJMS):

JMS provider: A messaging system that implements the JMS specification.
JMS clients: Java applications that send and receive messages.
Messages: Objects that are used to communicate information between JMS clients.

この仕様に関しては、JMSプロバイダー

JMSクライアント-メッセージを読むのは私のクラスです。
メッセージそれ自体は私が知っています。

問題は、メッセージ キュー
をどのように開始するかということです。Java コードからプログラム的にシミュレートするにはどうすればよいでしょうか。何らかの方法でモックすることはできますか。

ありがとう。

ベストアンサー1

実際の運用 JMS プロバイダーが利用できない場合にアプリケーションを分離してテストするには、次のいずれかを使用できます。

  1. JMS モック:
    アプリケーションをテストする際に、存在しない依存関係をシミュレートするには、テストダブル実際の JMS プロバイダーの動作をシミュレートする JMS モックを使用できます。APIシミュレーションツールJMSモックを作成できます(JMSをサポートするツールを選択するだけです、例えば交通オウム)。JMS モックを使用すると、テスト中に高い柔軟性が得られます。モックを設定してほぼすべての種類のメッセージを返すことで、典型的な本番環境のようなテストシナリオだけでなく、仮想的な状況もテストできます。また、実際の JMS プロバイダーでは難しいことが多いさまざまな種類のエラーをシミュレートすることもできます。ActiveMqのJMSサービス仮想化の紹介ビデオ(サービス仮想化はモックの別名です)またはこれはIBM MQ用ですこれらのビデオは Traffic Parrot のものですが、そこで説明されている原則はどのツールを選択しても適用されます。

  2. JMS プロバイダー テスト インスタンス:
    ラップトップまたはテスト環境の1つでJMSプロバイダーを実行し、本番プロバイダーの代わりにアプリケーションを接続できます。ActiveMQやRabbitMQなどのオープンソースプロバイダーを本番環境で使用する場合、軽量で無料であるため、ラップトップでも簡単に実行できます。IBM Websphere MQの場合は、無料の開発者向け IBM MQ

  3. JMS クラス モック:
    使用できますモッキートユニットテストでJMSクラスとのやり取りを模擬します。このソリューションにはユニットテストのトレードオフがすべて伴います。詳細については、テストピラミッド

アプリケーションをブラックボックス テストしたい場合は、上で説明したソリューションのいずれかを使用してください。

おすすめ記事