使用Android中的单独组件配置使用Dagger 2进行测试

时间:2016-07-09 03:54:07

标签: java android integration-testing dagger-2

匕首2 documentation suggests providing different configurations,使用interface ProductionComponentTestComponent进行测试和制作,具体如下:

@Component(modules = {
  OAuthModule.class, // real auth
  FooServiceModule.class, // real backend
  OtherApplicationModule.class,
  /* … */ })
interface ProductionComponent {
  Server server();
}

@Component(modules = {
  FakeAuthModule.class, // fake auth
  FakeFooServiceModule.class, // fake backend
  OtherApplicationModule.class,
  /* … */})
interface TestComponent extends ProductionComponent {
  FakeAuthManager fakeAuthManager();
  FakeFooService fakeFooService();
}

我们假设我们有一项使用MyApp的Android活动(ProductionComponent):

public class MyApp extends Application {
    private ProductionComponent component;

    @Override public void onCreate() {
        super.onCreate();

        component = ProductionComponent.builder()
                .serverModule(new ServerModule())
                .build();
    }
}

通常,在Android集成测试中使用DaggerTestComponent.builder()而不是ProductionComponent.builder()的最佳方式是什么?

我不确定如何使用假货;我应该在/androidTestextends MyApp开展一项新活动吗?或者我应该在设置测试时使用getter / setter将新DaggerTestComponent传入MyApp

1 个答案:

答案 0 :(得分:0)

如何将robolectricMockito一起使用?

您可以在没有AndroidTest的情况下使用@Test制作JUnit测试代码。 我想你和Mockito一起制作测试匕首。

这里引用

http://alexzh.com/tutorials/android-testing-mockito-robolectric/ http://sdudzin.blogspot.kr/2011/01/easy-unit-testing-for-android.html