有这样一种方法,它通过发出请求VKApi并接收id用户的头像
private fun getPhotoIdByUser(userId: String) {
val fields = "crop_photo"
val request = VKApi.users().get(VKParameters.from(VKApiConst.USER_ID, userId,
VKApiConst.COUNT, 1, VKApiConst.FIELDS, fields))
request.executeWithListener(object : VKRequest.VKRequestListener() {
override fun onComplete(response: VKResponse?) {
val id = response?.json?.getJSONArray("response")
?.getJSONObject(0)?.getJSONObject("crop_photo")
?.getJSONObject("photo")?.getString("id")
}
override fun onError(error: VKError?) {
Log.e("tag", "error")
}
})
}
我知道哪一个id应该回来。但是如果方法什么都不返回,你如何比较实际结果和预期结果呢?是否可以使用该方法做一些事情以便对其进行测试?
是的,你需要让方法返回一些东西。
Observable其中之一中rxJava。然后,您将有机会以内置于库中的方式测试它们。键入myMethodWhichReturnsObservableWhichContainsVkSdkAsyncRequest().test().assertResult("SOME RESULT HERE, I.E. INT VALUE")。在此处阅读更多内容:测试 RxJava。好吧,甚至可以通过调用使方法同步工作.toBlocking()。但这将违反任何一个的想法,因此是拐杖。