0

Android アプリを からDaggerに移行する際に問題がありDagger2ます。

私は Dagger を使用して、テスト中にさまざまなレイヤー (ユニット、機能デバイス、およびその間のすべて) にモックを挿入します。

たとえば、 aとaNetworkingModuleを提供する a があります。一部のテストでは http レイヤーをモックするだけで、他のテストでは をモックし、他のテストではリリース クラスを使用して実際のテスト サーバーとの統合をテストします。HttpTransportServerConnectorServerConnector

これらのテストは、すべてのビルド フレーバー (デバッグ、リリースなど) で実行できます。

Dagger2ビルドタイプごとに単一の静的注入構成を設定する説明のみを見つけました-つまり、実際のクラスをバインドするリリースコンポーネントと、1セットのモックをバインドするデバッグコンポーネント。

アプリケーションの起動段階で、モジュールをテスト ケースに置き換える方法を見つける必要があります。

どうすればこれを達成できますか?私の考えでは、アプリケーションがモジュールの静的注釈を持つ特定のインターフェースの実装であるコンポーネントを使用する必要があるグラフの構築をトリガーすると、常に行き詰まります???

別の質問: 同じインジェクションを提供する同じビルドで複数のモジュールをコンパイルすることは可能ですか? 実行時に適切なモジュールを挿入するにはどうすればよいですか?

私の例のNetworkingModule.

Espressoところで:私は、Robolectric、およびを多用していますMockito

どうも。

4

1 に答える 1

0

解決策を見つけました:

特定のコンポーネントやモジュールをビルドする必要はありません。

私のモジュールは、テスト時にモックを注入するために実装および設定したデリゲートを処理するだけです。これは、リリース ビルドでは非常に安価です。また、テストのために、便利な機能を反映させることもできます。

于 2015-04-26T00:04:01.220 に答える