Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Espresso.registerIdlingResources()_Android_Android Testing_Android Espresso - Fatal编程技术网

Android 使用Espresso.registerIdlingResources()

Android 使用Espresso.registerIdlingResources(),android,android-testing,android-espresso,Android,Android Testing,Android Espresso,我需要用浓缩咖啡写测试。此测试必须单击按钮,等待3秒钟(应用程序将在此时在TextView中加载文本),然后检查TextView是否包含文本。我正在使用下一个代码: onView(withId(R.id.button)).perform(click()); IdlingResource idlingResource = new ElapsedTimeIdlingResource(3000); Espresso.registerIdlingResources(idlingResource);

我需要用浓缩咖啡写测试。此测试必须单击按钮,等待3秒钟(应用程序将在此时在TextView中加载文本),然后检查TextView是否包含文本。我正在使用下一个代码:

onView(withId(R.id.button)).perform(click());

IdlingResource idlingResource = new ElapsedTimeIdlingResource(3000);
Espresso.registerIdlingResources(idlingResource);

onView(withId(R.id.label)).check(matches(withText("Some text")));

Espresso.unregisterIdlingResources(idlingResource);
ElapsedTimeIdlingResource类在上可用

看起来等待算法不起作用,并在单击后立即检查启动。registerIdlingResources()是否必须在3秒内冻结线程?或者这里需要一些回调


另外,这里还有一个关于日志记录的问题
Log.d()
System.out.println()不打印。有什么方法可以登录吗?

刚刚尝试了类似的代码,效果很好。不需要任何线程睡眠。问题应该在其他地方(不在您提供的代码中)。确保您的
注册数据源
检查
取消注册数据源
代码放在一个测试中。@MyDogTom,好的,谢谢。但是它是如何工作的呢?仅供理解。在执行查看操作之前,浓缩咖啡将等待所有注册的
idlingResource
变为空闲(
isIdleNow()
返回
true
)。请看,我遇到了一个类似的问题,在这个问题中,我无法前进到onView(…)方法的第二次调用。在第一次调用onView(…)时,它被冻结了。在我的例子中,我在执行任何测试之前注册我的XilingResource,在执行所有测试之后注销它。当我取消注册时,一切都开始按预期进行。不过看起来还是很有趣。