Unit testing 在单元测试中实例化应用程序类
我试图在Android项目上编写单元测试,但在创建应用程序类实例时遇到了障碍。该项目使用安卓架构组件进行改造和LiveData 目前,我正在尝试测试我的AuthRepository的登录功能,但我无法创建存储库的实例,因为它依赖于一个自定义SharedPrefs类,该类依赖于一个应用程序类 AuthRepositoryUnit testing 在单元测试中实例化应用程序类,unit-testing,kotlin,retrofit,android-testing,Unit Testing,Kotlin,Retrofit,Android Testing,我试图在Android项目上编写单元测试,但在创建应用程序类实例时遇到了障碍。该项目使用安卓架构组件进行改造和LiveData 目前,我正在尝试测试我的AuthRepository的登录功能,但我无法创建存储库的实例,因为它依赖于一个自定义SharedPrefs类,该类依赖于一个应用程序类 AuthRepository @Singleton class AuthRepository @Inject constructor( val retrofitService: RetrofitSer
@Singleton
class AuthRepository @Inject constructor(
val retrofitService: RetrofitService,
val sessionData: SharedPrefs
) {
fun login(username: String, password: String): LiveData<LoginResponse> {
return getCSRF().then {
if (it.result is GenericResponse.ErrorType) {
// Error Accepting Terms
val mutableLiveData = MutableLiveData<LoginResponse>()
mutableLiveData.value = LoginResponse(listOf(LoginResponse.ErrorType.Generic()))
mutableLiveData
}
else {
retrofitService.postLogin(LoginBody(username, password))
.map {
val res = LoginRemote.parseResponse(it.response)
return res
}
}
}
}
}
通过这种方式设置,我是否可以为我的AuthRepository运行普通的旧单元测试?或者对应用程序的依赖将迫使我使用检测测试来测试我的AuthRepository吗?1。您可以使用Mockito模拟
应用程序
类:
@Mock private lateinit var context: Application
@Before fun setupTasksViewModel() {
MockitoAnnotations.initMocks(this)
}
SharedPrefs
对象
@Mock private lateinit var prefs: SharedPrefs
谢谢既然你已经回答了我很多问题,你介意我们私下聊聊吗?现在我有了这些,我需要弄清楚如何
观察需要LifeCycleOwnersure实例的响应,让我们一起想一想好的,打开聊天室的最佳方式是什么?我想你知道:)我本来打算通过你的链接个人资料与你联系,但它无效?
@Mock private lateinit var prefs: SharedPrefs