私はMVPで働いていましたが、プレゼンターはビジネスロジックを持ち、Androidの内部構造はまったく参照されていないため、普通はJunit(Instrumentationではなく)を使ってプレゼンターをテストします。AndroidプレーンDagger 2とJunit 2
Dagger 2に切り替えると、自分のアプリケーションコンポーネントの「TestModule」を設定する際に問題があることがわかりました。テストクラス内から動作しませんコンポーネントの作成
- は、標準のJUnitテストでダガーを使用するための任意の例を見つけることができませんでした(おそらくので、「aptの」が実行されていません)。私が見つけたすべての例は、InstrumentationテストやRoboelectric(基本的にアクティビティやその他のAndroid関連の項目をモックする)に依存していますが、これは私のUIテストに過ぎません。
私はアプリ - > src-> testフォルダではなく、アプリケーション - > src-> androidTestにあるテストについて話しています。
私は何か問題がありますか?または何かが欠けている? Dagger 2を通常の単体テストでどのように使用するか説明したり例を挙げたりできますか?
すでに試しました。 DaggerMockInjectionComponent.builder()を呼び出そうとするとコンパイルされません... "エラー:(41,54)エラー:シンボルメソッドビルダー()を見つけることができません..."ここにGithubのリファレンスがあります:https ://github.com/ivelius/BitcoinGraph/blob/4b9080229f9a2f9c5362b4930bab3dcb979e9e08/app/src/test/java/com/example/yanbraslavski/bitcoingraph/MainPresenterTest.java#L43 – Ivelius
@Ivelius Daggerの前にDaggerMockAppComponentを追加する必要があります。あなたのプロジェクトでDaggerがファイルを生成することができ、インポートを促すプロンプトが表示されます。 –
確かに、ちょうどタイプミスでした。私は修正を約束した。それはまだ同じです...コンパイルしません。あなたはこの小規模なテストプロジェクトをチェックアウトして自分で見ることができます... https://github.com/ivelius/BitcoinGraph/blob/DaggerTests/app/src/test/java/com/example/yanbraslavski/bitcoingraph/MainPresenterTest。 java – Ivelius