Android アプリを からDagger
に移行する際に問題がありDagger2
ます。
私は Dagger を使用して、テスト中にさまざまなレイヤー (ユニット、機能デバイス、およびその間のすべて) にモックを挿入します。
たとえば、 aとaNetworkingModule
を提供する a があります。一部のテストでは http レイヤーをモックするだけで、他のテストでは をモックし、他のテストではリリース クラスを使用して実際のテスト サーバーとの統合をテストします。HttpTransport
ServerConnector
ServerConnector
これらのテストは、すべてのビルド フレーバー (デバッグ、リリースなど) で実行できます。
Dagger2
ビルドタイプごとに単一の静的注入構成を設定する説明のみを見つけました-つまり、実際のクラスをバインドするリリースコンポーネントと、1セットのモックをバインドするデバッグコンポーネント。
アプリケーションの起動段階で、モジュールをテスト ケースに置き換える方法を見つける必要があります。
どうすればこれを達成できますか?私の考えでは、アプリケーションがモジュールの静的注釈を持つ特定のインターフェースの実装であるコンポーネントを使用する必要があるグラフの構築をトリガーすると、常に行き詰まります???
別の質問: 同じインジェクションを提供する同じビルドで複数のモジュールをコンパイルすることは可能ですか? 実行時に適切なモジュールを挿入するにはどうすればよいですか?
私の例のNetworkingModule
.
Espresso
ところで:私は、Robolectric
、およびを多用していますMockito
。
どうも。