mar*_*yam 5 android mockito android-testing dagger-hilt
我dagger hilt在我的项目中使用。我想写UI test一些片段。我需要viewModel在测试类中模拟 并将其与测试下的片段相关联.. 我阅读了dagger hilt文档,但没有找到任何解决方案。
class HomeViewModel @ViewModelInject constructor(
private val repository: MainRepository,
prefManager: PrefManager,
private val firebaseAnalytics: FirebaseAnalytics,
@Assisted private val savedStateHandle: SavedStateHandle
) : ViewModel() {
/////
}
@AndroidEntryPoint
class HomeFragment : BaseFragment() {
private val viewModel: HomeViewModel by viewModels()
/////
}
Run Code Online (Sandbox Code Playgroud)
如果您的目标是使用模拟数据测试片段,则不必模拟视图模型;相反,您可以在 dagger 模块中提供模拟存储库实现:
@Module
@TestInstallIn(
components = SingletonComponent::class,
replaces = ProdRepositoryModule::class
)
interface FakeRepositoryModule {
@Binds fun bind(impl: FakeRepository): MainRepository
}
Run Code Online (Sandbox Code Playgroud)
运行 UI 测试时,这会将模块中提供的所有绑定替换ProdRepositoryModule为模块中提供的绑定FakeRepositoryModule。查看Hilt 测试文档以获得进一步帮助。
| 归档时间: |
|
| 查看次数: |
484 次 |
| 最近记录: |