将 Hilt 用于 UI 测试、TestInstalln 时出现绑定多次问题

Bound Multiple Times issue when using Hilt for UI Test, TestInstalln

我创建了一个伪造的 urlprovider 绑定并使用 TestInstallIN 进行了注释

@Module
@TestInstallIn(
    components = [SingletonComponent::class],
    replaces = [UrlModuleBindings::class]
)
abstract class FakeAppBindings {

    @Binds
    abstract fun bindsUrlProvider(urlProvider: FakeUrlProvider): UrlProvider
}

我的 Prod UrlProvider 看起来像

@Module
@InstallIn(SingletonComponent::class)
abstract class UrlModuleBindings {

    @Binds
    abstract fun bindsUrlProvider(urlProvider: DefaultUrlProvider): UrlProvider
}

当我 运行 UI 测试得到错误 UrlProvider 绑定多次:

根据文档,一切似乎都是正确的,我能知道这是什么问题吗?

感谢 Brad,问题出在 AppModule 上,我使用的是 Includes,而 hilt 不需要 Includes,因为它已经具有用于此目的的 InstallIn 注释。一旦我删除它,UI 测试开始工作。

更多详情。

https://github.com/google/dagger/issues/3209