如何解决在单元测试Android中测试多模块匕首依赖
这是我的活动,我的AppModule Test活动正在调用另一个模块的依赖项。
class MyPageActivityTest {
lateinit var myPageActivity: MyPageActivity
@RelaxedMockK
lateinit var context: Context
lateinit var mBTest: BComponentTest
lateinit var mATest: AComponentTest
@Before
fun setUp() {
MockKAnnotations.init(this,true)
mBTest = DaggerBComponentTest.builder()
.buildBModule(BModuleTest(context)).build()
mATest= DaggerAComponentTest
.builder()
.buildAppModule(AModuleTest(context))
.buildBTestComponent(mBTest)
.build()
myPageActivity =
Robolectric.buildActivity(MyPageActivity::class.java)
.create()
.resume()
.get()
}
@Test
fun test(){
myPageActivity.onBackpressed()
}
}
这是我的B组件:
@Component(modules = [BModuleTest::class])
interface BComponentTest {
@Component.Builder
interface Builder {
fun buildBModule(bModule: BModuleTest): Builder
@BindsInstance
fun build(): BComponentTest
}
}
现在,这是我的App模块的测试依赖项组件,该组件具有其他模块(在这里为BComponentTest)作为测试模块的依赖项。
@Component(modules = [AppModuleTest::class],dependencies = [BComponentTest::class] )
interface AComponentTest {
@Component.Builder
interface Builder {
fun buildBTestComponent(mBComponent: BComponentTest):Builder
fun buildAppModule(appModule: AppModuleTest): Builder
fun build(): AComponentTest
}
}
运行相同活动的测试时出现错误。
error: cannot find symbol @dagger.Component(modules = {com.x.x.di.modules.AppModuleTest.class},dependencies = {BComponentTest.class})
^ symbol: class AComponentTest
AND
error: [ComponentProcessor:MiscError] dagger.internal.codegen.ComponentProcessor was unable to process this interface because not all of its dependencies Could be resolved. Check for compilation errors or a circular dependency with generated code.
public abstract interface AComponentTest {
其他所有测试用例都可以正常工作,但是当涉及到构建“基础到从属模块的测试匕首”时,则无法正常工作。
任何人都可以建议我错了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。