私は現在、「jUnitやMockitoなどのフレームワークを使用してOSGiコンポーネントのテストを簡単に作成できるようにOSGiコンポーネントを設計する方法」を考えています。
OSGiはDIP (依存性逆転の原則)を強化し、インジェクター方式(セッターなど)が通常存在するため、バンドル間の依存関係をあざけるのは非常に簡単です。
しかし、バンドルの内部依存関係はどうですか?
たとえば、この場合を見てください。今度はそれをOSGiコンテキストに持ち込みたい...OSGiプラットフォームで宣言型サービスとしてあらゆる種類のネットワークプロトコルを提供し、直接相互作用している下位のネットワークコードをテストするための単体テストを記述したいイメージソケットオブジェクト。
ソケットの作成を別の、しかしバンドルされた内部POJO (Plain Old Java Object)クラスにリファクタリングする場合、プロトコル実装にどのように注入する必要がありますか?
- 単体テストでは、単純にセッターメソッドを使用できますが、OSGiコンテナーでこれを行うのは誰ですか?
- テストされたクラスをサブクラス化し、creator-methodを上書きすることは、テストされたクラスがfinalとして宣言されていない場合にのみ機能します。