9

私はAndroidアプリケーションに取り組んでおりDagger、依存性注入に使用しています。

これらの依存関係のいずれかを持つフラグメントをテストしようとしています。それを と呼びましょうProductsService

私のRobolectricテストでは、オーバーライドするテストモジュールを持っているところまで行きましたProductsService

    @Module(
        includes = ProductsModule.class,
        injects = {
                Fragment.class,
                FragmentTest.class
        },
        overrides = true
)
static class MockProductsModule {
    @Provides
    @Singleton
    public ProductsService providesProductsService() {
        return Mockito.mock(ProductsService.class);
    }
}

私のテストでは、フラグメントを実行するために、次のように構築します (ここで見られるように、Robolectric でフラグメントをテストするにはどうすればよいですか? )

        FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class)
            .create()
            .start()
            .resume()
            .get();

    FragmentManager fragmentManager = activity.getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(fragment, null);
    fragmentTransaction.commit();

問題は、この作成中にDagger依存関係を満たすために呼び出しを行うことです。

((MyApplication)getActivity().getApplication()).inject(this);

フラグメントの作成時に作成されたオブジェクト グラフをオーバーライドしMockProductsModuleて、テストで I 宣言を使用するにはどうすればよいですか?

4

1 に答える 1