标签: daggermock

Dagger 2 如何将对象注入测试

我想将我的领域管理器用于单元测试模块。我做了

@Singleton
@Component(modules = {
        TestApplicationModule.class,
        AndroidSupportInjectionModule.class,
        TestStoreDataModule.class,
        TestUtilsModule.class})
public interface AppComponentTest extends AppComponent {

    @Component.Builder
    interface Builder {

        @BindsInstance
        AppComponentTest.Builder application(Application application);

        AppComponentTest build();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我想实现

@RunWith(RobolectricTestRunner.class)
@Config(application = TestVerioriApplication.class, sdk=27)
public class BaseVerificationQuestionnaireFragmentTest {

    @Inject
    RealmManager realmManager;
}
Run Code Online (Sandbox Code Playgroud)

但是realmManager 为空。如何使用 dagger 2 编写简单的模块测试?我使用了 dagger-mock 但它没有帮助。我的模块包含

@Module(includes = StoreDataModule.class)
public class TestStoreDataModule {

    @Provides
    @Singleton
    public static RealmConfiguration provideRealmConfiguration(RealmConstants realmConstants) {
        return new RealmConfiguration.Builder()
                .name(realmConstants.getName())
                .encryptionKey("Implement this key".getBytes())
                .schemaVersion(realmConstants.getSchemaVersion())
                .build();
    }

    @Provides
    @Singleton
    public static RealmManager provideRealmManager(RealmConfiguration realmConfiguration, …
Run Code Online (Sandbox Code Playgroud)

android dependency-injection dagger-2 daggermock

6
推荐指数
1
解决办法
2135
查看次数