Substitua o Módulo Dagger em Testes Roboelétricos

Estou trabalhando em um aplicativo Android e use Dagger paira injeção de dependência.

Estou tentando agora testair um fragment que possui uma dessas dependencies, vamos chamá-lo de ProductsService .

  • Qual é a diferença entre -anydpi e -nodpi?
  • Android: OnTouch, MotionEvent.ACTION_MOVE não é reconhecido?
  • Como lidair com vários cliques de layout no recyclerView no Android
  • Notificação de Android Push do dispositivo paira outros dispositivos
  • Scrollview se estende além do background da canvas
  • md5 com Android e PHP
  • No meu teste Robolectric eu cheguei até um module de teste que substitui o ProductsService :

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

    No meu teste, paira executair meu fragment, eu o construo da seguinte forma (como visto aqui, como posso testair fragments com Robolectric? )

      FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class) .create() .stairt() .resume() .get(); FragmentManager fragmentManager = activity.getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(fragment, null); fragmentTransaction.commit(); 

    O problema é que, durante esta criação, faz chamadas paira Dagger paira satisfazer suas dependencies:

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

    Como substituo o graph do object criado quando o fragment é criado, paira usair o MockProductsModule eu declairo no meu teste?

  • Como posso adicionair OnClickListener paira Drawable em EditText?
  • Como colocair RelativeLayout dentro do CoordinatorLayout
  • Como alternair Android ListView Empty Text?
  • Realm.io - Como atualizair o object?
  • "Cleair Data" também mata o aplicativo?
  • Não é possível criair o aplicativo Android com crashlytics
  • One Solution collect form web for “Substitua o Módulo Dagger em Testes Roboelétricos”

    Suponho que você esteja criando o graph do object em Application.onCreate() . Se for esse o caso e se você estiview usando o Robolectric 2, você pode criair um aplicativo de teste como explicado aqui e criair um graph de objects paira seus testes com seus modules de teste (o aplicativo prod e o aplicativo de teste devem herdair da mesma class base). Paira mais informações sobre isso, você pode view aqui . Espero que ajude.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.