1

一部のコンポーネントを提供するために、Fuse ESB (Camel、OSGi、ブループリント) を使用していくつかのスパイクに取り組んでいます。EA から課せられたアーキテクチャがあります。REST コントローラーはルートを使用して CXF WS を呼び出します。これは、たとえば CRUD アクションを実行するために、サービスとしてローカルの Java クラスを呼び出します。これらは、JPA 対応の DAO/エンティティを使用します。現実の世界というよりは、デザインが少しアカデミックに見えますが、それはまた別の話です。

テストについての質問です。通常、H2を使用してDBを提供し、DAO、entityManagerなどをSpringとともに配線して、このサービス層を実際にテストします(一部の人はこれを行わないことを知っていますが、私は我慢します)。ただし、ヒューズには設計図を使用します。この階層を単体テストするにはどうすればよいですか? テストを CamelBlueprintTestSupport のサブクラスに取得しても機能しません。これにはルートが必要です。SpringJUnit4ClassRunner を使用することはできません (ただし、現在これで動作しています)。これは、コンテナー内で実行するときに設計図を使用して配線するため、Spring と配線されます。

では、これを単体テストするにはどうすればよいでしょうか。ブループリント ベースの単体テスト内でこの一連のクラスをインスタンス化するにはどうすればよいですか? していい?

4

2 に答える 2

0

試すことができるアプローチの 1 つは、pax Exam を使用することです。完全な OSGi 環境でテストを実行できます。したがって、実際のバンドルをインストールして、ブラック ボックスの方法でテストできます。

于 2013-08-15T19:56:36.293 に答える
0

camel-test-blueprint が使用している pojosr を使用できます: https://code.google.com/p/pojosr/

pojosr は完全な OSGi 環境ではありませんが、できることにはいくつかの制限があります。

camel-test-blueprint の場合、メソッド isUseRouteBuilder をオーバーライドして false を返すことができる場合があります。その場合、ルートは想定されません。

于 2013-08-18T12:29:50.123 に答える