我的 Espresso Idling 资源不工作 - 它可以编译并运行,但不再等待足够长的时间来从网络返回结果。
- 从https://github.com/chiuki/espresso-samples/tree/master/idling-resource-okhttp开始
- 将主要活动转换为 Kotlin - 测试(仍在 java 中)仍然适用于 OKHttpIdlingResource
- 转换为 anko 协程调用而不是 retrofit.enqueue - 测试不再有效。
这是 MainActivity 的全部新代码
import android.app.Activity
import android.os.Bundle
import android.widget.TextView
import kotlinx.coroutines.experimental.android.UI
import kotlinx.coroutines.experimental.async
import org.jetbrains.anko.coroutines.experimental.bg
import retrofit2.Retrofit
import retrofit2.converter.moshi.MoshiConverterFactory
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
doCallAsync()
}
private fun doCallAsync() = async(UI) {
val user = bg { getUser() }
val name = user.await().name
val nameView = findViewById(R.id.name) as TextView
nameView.text = name;
}
private fun getUser(): User {
val retrofit = Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(MoshiConverterFactory.create())
.client(OkHttpProvider.getOkHttpInstance())
.build()
val service = retrofit.create(GitHubService::class.java)
val response = service.getUser("chiuki").execute().body()
return response!!
}
}