Componente de teste gerado no punhal 2 não reconhecido
Espero que isso seja apenas algo que estou fazendo de errado aqui. Estou tentando usar o Dagger 2.0 para injetar dependências nos meus testes JUnit (não testes de café expresso, apenas JUnit puro). Então, eu tenho um módulo java 'main' e um módulo java 'test'. No módulo principal, eu tenho um módulo Dagger e um componente:
@Module
public class MainModule {
@Provides
public Widget provideWidget() {
return new ConcreteWidget();
}
}
...
@Component (modules = MainModule.class)
public interface MainComponent {
void inject(WidgetConsumer consumer);
}
E no meu módulo de teste, tenho o seguinte:
@Module
public class TestModule {
@Provides public Widget provideWidget() {
return new Widget() {
@Override
public void doThing() {
int y = 6;
y ++;
}
};
}
}
...
@Component(modules = TestModule.class)
public interface TestComponent extends MainComponent{
}
Meu build.gradle tem dependências parecidas com esta:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
testCompile 'junit:junit:4.12'
compile 'com.google.dagger:dagger:2.9'
testCompile 'com.google.dagger:dagger:2.9'
annotationProcessor 'com.google.dagger:dagger-compiler:2.9'
testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.9'
}
Por qualquer motivo, Dagger geraDaggerMainComponent
, mas se recusa a gerarDaggerTestComponent
. Parece não haver erros na saída gradle quando eu construo.
Aqui está a coisa ... Acho que o processador de anotações está em execução, mas de alguma forma o plug-in Android Gradle está falhando em atrair essas fontes geradas durante o tempo de compilação. Inspecionei o diretório app / build / gerados / source / apt / test / e encontreiDaggerTestComponent.java
lá, mas por algum motivo, não é importado como uma dependência.
Alguma ideia?Aqui está um link para um projeto de teste mostrando meu problema