瓦尔Context.dataStore by preferencesDataStore(Constants.PREFERENCES_NAME)
@Singleton类DataStoreManager @Inject构造函数(@ApplicationContext appContext:上下文){
private val settingsDataStore: DataStore<Preferences> = appContext.dataStore
private val androidIndexVersion = intPreferencesKey(Constants.ANDROID_INDEX_VERSION)
suspend fun setXyzKey(mode: Int) {
settingsDataStore.edit { settings ->
settings[XyzKey] = mode
}
}
val getXyzKey: Flow<Int> = settingsDataStore.data.map { preferences ->
preferences[XyzKey] ?: -1
}
}
我试图找出在Android单元测试中工作而不是在仪器测试中运行的解决方案。
1条答案
按热度按时间m1m5dgzv1#
你想测试一个来自android的组件,它是
DataStore
,但由于它是android的一部分,你必须在模拟器中运行测试,这意味着你必须使用Instrumented Tests。另一方面,你可以为你想要存储的东西创建一个接口类型,并使用
DataStore
实现,这样你就可以在以后的普通单元测试中将该接口的Fake实现传递给其他依赖项。