5

http://mockrunner.sourceforge.net/の mockrunner パッケージを使用して、次のように動作する XML フィルターをテストする JUnit 用のモック キューを設定しています。

  1. ftp サーバーが xml 入力を送受信するための認識可能なプロパティと、ジョブを追跡する jms キュー サーバーを設定します。キュー メッセージが受信されると、実際に xml を解析するサーバーがリモートで待機します。
  2. ftp を使用してリモート ディレクトリを作成し、mqconnectionfactory を使用してキュー サーバーの指定されたアドレスへのキュー接続を開始します。
  3. 2) で新しいキュー エントリが作成されると、フィルタは、ジョブがリモート サーバーによって完了したことを示す新しいキュー メッセージが表示されるのを待ちます。次に、フィルターは変更された xml ファイルを ftp から取得し、それを次のフィルターに渡します。

私が取り組んでいる JUnit テストでは、フィルターが接続するローカル ftp およびモック キュー サーバーを起動し、フィルターがキューに接続して新しい xml 入力ファイルをローカル ディレクトリに配置するのを待つことによって、この環境をエミュレートする必要があります。ローカル ftp サーバー経由で、キュー メッセージを待ってから、xml 入力をわずかに変更し、変更した xml を新しいディレクトリに置き、ジョブが完了したことを示す別のメッセージをキューに投稿します。

私がネットで見つけたすべてのチュートリアルでは、EJB と JNDI を使用して、作成されたキュー サーバーをルックアップしていました。可能であれば、EJB や JNDI を使用せずに、ローカル マシンにモック キューを作成し、できるだけ簡単な方法で接続することで、そのルートを回避したいと考えています。

前もって感謝します!

4

2 に答える 2

3

私はMockEjbを使用していますが、その中にはモックキューを使用する例がいくつかあるので、情報を見てください 。うまくいけば役に立ちます。

于 2008-10-22T10:55:13.913 に答える
2

Apache Camelを使用してテスト ケースを作成することを検討することをお勧めします。次に、使用可能なコンポーネントのいずれかからテスト ケースを簡単に切り替えることができます。最も重要なのは、Camel には非常に便利なモック エンドポイントがいくつか付属しているため、特に非同期操作で複雑なルーティング ロジックを非常に簡単にテストできることです。

Spring も使用している場合は、Camel のモック エンドポイントを使用してこれらの Spring 単体テストを試すことから始めてください。これにより、ProducerTemplate オブジェクトと一緒にアサーションを実行するモック エンドポイントを注入して、テスト ケースのメッセージを非常に簡単に起動できます。 . たとえば、そのページの最後の例を参照してください。

SEDA エンドポイントのような単純なエンドポイントを使用して開始します。次に、コア スプリング/モック フレームワークに慣れてきたら、JMS エンドポイントまたはFTP エンドポイント エンドポイントなどを使用してみてください。

于 2008-10-01T16:20:46.023 に答える