1
私のクラスで、私のアプリケーションが実行されているOSGIコンテナによって初期化されているプライベートフィールドをモックしようとしています。私は、この上の任意の手掛かりを参照するためのサンプルコードをしてください入れている:OSGI Felixコンテナによってモックプライベートフィールドが初期化されています
ここimport org.apache.felix.scr.annotations.*
@Component (name = "MyServiceImpl ", ds = true, immediate = true)
@Service
public class MyServiceImpl extends MyBasee implements MyService {
@Reference (name = "MyOtherService", bind = "bind", unbind = "unbind", policy = ReferencePolicy.STATIC)
private MyOtherService myServiceRegistryConsumer;
}
私はあなたがモックと@InjectMocks
注釈を使用してフィールドを挿入することができますMockitoでプライベートフィールドにMyOtherService myServiceRegistryConsumer
私はより明確に私の質問を編集しました。このようにして私はプライベートフィールドmyServiceRegistryConsumerを制御することはできません。 MyServiceImplではなく、MyOtherServiceオブジェクトを注入/モックすることは望ましくありません。これは、コンテナによってインスタンス化されています。 – Arun
@Arun 'myServiceImpl'はここで模擬ではありません。 Mockitoは 'myServiceRegistryConsumer'をモックしてインスタンスに注入します。テストメソッドではまだモックを完全に制御でき、そのモックの動作を定義することができます。 –
はい、あなたの説明どおりに動作します。どうもありがとう :) – Arun