Android 使用CountingIdlingResource进行异步操作时,检测测试失败
在我的检测测试中,Android 使用CountingIdlingResource进行异步操作时,检测测试失败,android,kotlin,android-espresso,android-instrumentation,Android,Kotlin,Android Espresso,Android Instrumentation,在我的检测测试中,testZoomControls总是在CountingIdlingResource递减之前执行,并且导致映射尚未初始化异常 怎么可能呢 MapViewUiControlsTest.kt 您需要Espresso.onView(..)。检查(..)或类似的IdlingResource,以使其有所不同。在这种情况下,浓缩咖啡将等待所有空闲资源空闲,然后继续下一行代码: @Test @UiThreadTest fun testZoomControls() { //this wi
testZoomControls
总是在CountingIdlingResource
递减之前执行,并且导致映射尚未初始化
异常
怎么可能呢
MapViewUiControlsTest.kt
您需要
Espresso.onView(..)。检查(..)
或类似的IdlingResource,以使其有所不同。在这种情况下,浓缩咖啡将等待所有空闲资源空闲,然后继续下一行代码:
@Test
@UiThreadTest
fun testZoomControls() {
//this will wait until your IdlingResource is idle
Espresso.onView(<your map view matcher>).check(matches(isDisplayed()));
map.getMapOptions().zoomControlsEnabled = true
Assert.assertEquals(View.VISIBLE, mapView.zoomControlsView.visibility)
}
@测试
@超线程测试
趣味测试ZoomControl(){
//这将等待您的IdlingResource空闲
Espresso.onView().check(匹配项(isDisplayed());
map.getMapOptions().zoomControlsEnabled=true
Assert.assertEquals(View.VISIBLE、mapView.ZoomControl.visibility)
}
val idlingResource = CountingIdlingResource("dummy_resource", true)
fun init() {
idlingResource.increment()
mapView.getMapAsync(onMapReadyCallback = object : OnMapReadyCallback {
override fun onMapReady(map: Map) {
this@MapViewTestActivity.map = map
idlingResource.decrement()
}
})
}
@Test
@UiThreadTest
fun testZoomControls() {
//this will wait until your IdlingResource is idle
Espresso.onView(<your map view matcher>).check(matches(isDisplayed()));
map.getMapOptions().zoomControlsEnabled = true
Assert.assertEquals(View.VISIBLE, mapView.zoomControlsView.visibility)
}