Android Dagger不为TestModule生成适配器
如何制作apt流程测试源文件? 当我进行以下设置时,会出现异常: java.lang.IllegalStateException:未能加载类info.korzeniowski.walletplus.test.Module.TestDatabaseModule的模块适配器。请确保已为此模块运行代码生成。 和类TestDatabaseModule$$ModuleAdapter未生成,而DatabaseModule$$ModuleAdapter已正确生成 我做错了什么 build.gradle: ./src/main/java/info/korzeniowski/walletplus/module/DatabaseModule.java ./src/androidTest/java/info/korzeniowski/walletplus/test/module/TestDatabaseModule.java RobolectrictTest.java apt配置仅适用于主要来源。您还必须声明为测试源运行的注释处理器,因为它是对javac的单独调用 可以使用类似的语法执行此操作:Android Dagger不为TestModule生成适配器,android,robolectric,dagger,annotation-processing,Android,Robolectric,Dagger,Annotation Processing,如何制作apt流程测试源文件? 当我进行以下设置时,会出现异常: java.lang.IllegalStateException:未能加载类info.korzeniowski.walletplus.test.Module.TestDatabaseModule的模块适配器。请确保已为此模块运行代码生成。 和类TestDatabaseModule$$ModuleAdapter未生成,而DatabaseModule$$ModuleAdapter已正确生成 我做错了什么 build.gradle: ./
androidTestApt "com.squareup.dagger:dagger-compiler:$daggerVersion"
apt配置仅适用于主要来源。您还必须声明为测试源运行的注释处理器,因为它是对javac的单独调用
可以使用类似的语法执行此操作:
androidTestApt "com.squareup.dagger:dagger-compiler:$daggerVersion"
就这样!谢谢你,杰克。android apt 1.4版本也提供了androidTestApt配置。就是这样!谢谢你,杰克。自android apt 1.4版本以来,androidTestApt配置也可用。
package info.korzeniowski.walletplus.test.module;
@Module(
...
includes = DatabaseModule.class,
overrides = true
)
public class TestDatabaseModule {
@Provides
@Singleton
public DatabaseHelper provideTestDatabaseHelper() {
return new DatabaseHelper(Robolectric.application, null);
}
}
@Before
public void setUp() {
List<Object> modules = new ArrayList<Object>();
modules.add(new DatabaseModule((WalletPlus) Robolectric.application));
modules.add(new TestDatabaseModule());
ObjectGraph.create(modules.toArray()).inject(this);
}
androidTestApt "com.squareup.dagger:dagger-compiler:$daggerVersion"