java - 如何测试此存储库方法 makeAddBuildingApiCall 和 addBuildingDetails
问题描述
那里有一个 repo 方法,它负责进行 API 调用,将数据插入后端。
如何使用 Mockito 向这两个方法 addBuildingDetails 和 makeAddBuildingApiCall 添加单元测试?
class AddBuildingRepository {
/**
* mStatus is used to know the status code from the backend
*/
var mStatus: MutableLiveData<Int>? = null
var ok: Int? = null
/**
* this block provides a static method which will return the object of the repository
* if the object is already there than it returns the same
* or else it will return a new object
*/
companion object {
private var mAddBuildingRepository: AddBuildingRepository? = null
fun getInstance(): AddBuildingRepository {
if (mAddBuildingRepository == null) {
mAddBuildingRepository = AddBuildingRepository()
}
return mAddBuildingRepository!!
}
}
/**
* function will initialize the MutableLivedata Object and than call a function for api call
* Passing the Context and model and call API, In return sends the status of LiveData
*/
fun addBuildingDetails(mAddBuilding: AddBuilding): LiveData<Int> {
if (mStatus == null) {
mStatus = MutableLiveData()
}
makeAddBuildingApiCall(mAddBuilding)
return mStatus!!
}
/**
* make call to api to get the data from backend
*/
fun makeAddBuildingApiCall(mAddBuilding: AddBuilding) {
val addBuildingService: ConferenceService = Servicebuilder.getObject()
val addBuildingRequestCall: Call<ResponseBody> = addBuildingService.addBuilding(mAddBuilding)
addBuildingRequestCall.enqueue(object : Callback<ResponseBody> {
override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
mStatus!!.value = Constants.INTERNAL_SERVER_ERROR
}
override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
mStatus!!.value = response.code()
}
})
}
}
解决方案
推荐阅读
- aws-lambda - 开玩笑,带有中间件的测试处理程序
- spring-boot - Spring WebFlux Kotlin OAuth2 CORS
- arrays - 按 Octave 中的列对矩阵进行排序
- rust - 引用上指定的生命周期是否表示引用或对象将存在多长时间?
- javascript - Vue 3 访问“this”属性($router、$store、...)
- django - 进程是否与 django-post_office 中的并发相同?
- python - 为什么我测试失败:读取行时出现 EOF
- python - Python3:如何根据条件拆分列表?
- flutter - 带有资产图像和文本的卡片
- sql - 查询以按值并排获取总不同值