Android Dagger2 JUnit生成的TestComponent类在TestClass中无法识别/识别
这里有点介绍Android Dagger2 JUnit生成的TestComponent类在TestClass中无法识别/识别,android,junit4,dagger-2,Android,Junit4,Dagger 2,这里有点介绍 项目有核心和应用组件 一些实用程序类放在核心组件中,以简化其他模块中的JUnit测试 匕首用于所有模块 这是项目结构 core ___src ______main _________com.core ____________CoreComponent ______test _________com.core.test ____________SomeMockData ___build/generated/source/kapt ______coreDebug
- 项目有
和核心
组件应用
- 一些实用程序类放在
核心
组件中,以简化其他模块中的JUnit测试
- 匕首用于所有模块
core
___src
______main
_________com.core
____________CoreComponent
______test
_________com.core.test
____________SomeMockData
___build/generated/source/kapt
______coreDebug
_________com.core
____________DaggerCoreComponent
app
___src
______main
_________com.foo
____________AwesomeComponent
____________ConcreteClassA
______test
_________com.foo
____________TestAweseomeComponent
____________MyJUnitTest
___build/generated/source/kapt
______appDebug
_________com.foo
____________DaggerAwesomeComponent
______appDebugUnitTest
_________com.foo
____________DaggerTestAwesomeComponent
在appbuild.gradle
中,添加了内核作为主要依赖项和测试依赖项
implementation project(':core')
testImplementation project(':core')
Dagger2-为codegen添加,并成功生成DaggerTestComponent
testImplementation dagger.xx
kaptTest daggerProcessor.xx
这里有两个问题
app/test
源中无法访问放置在core/test
中的SomeMockData
(不过IDE没有显示任何错误)。运行myjunitest
时抛出错误DaggerTestAwesomeComponent
未检测到TestAwesomeComponent
和DaggerTestAwesomeComponent
在myjunitest
中不可见。正如我们所知,生成的DaggerAwesomeComponent
工作正常myjunitest\u MembersInjector也会生成。因为我在测试类中有@Inject
我也有同样的问题。已尝试使缓存无效/重新启动,清理生成的代码并运行assembleAndroidTest、AssembledBugUnitTest。此外,无法在“测试”部分解析ImmutableMap和CanIgnoreReturnValue类。在代码部分,一切正常。提供了kaptTest依赖项。此线程注意到测试仍然有效。在我的例子中,测试即使有错误也能工作。我也有同样的问题。已尝试使缓存无效/重新启动,清理生成的代码并运行assembleAndroidTest、AssembledBugUnitTest。此外,无法在“测试”部分解析ImmutableMap和CanIgnoreReturnValue类。在代码部分,一切正常。提供了kaptTest依赖项。此线程注意到测试仍然有效。在我的例子中,测试即使有错误也能工作。