我知道围绕这个有很多问题,但我找不到任何可以帮助我的事情:(
我尝试使用Espresso为Android应用生成UI-Test。在击败依赖性问题之后(因为某些库在不同版本中被包含两次作为来自其他库的依赖)我仍然无法创建工作测试...
我知道IdlingResource,但正如我所读到的那样,espresso等待开箱即用,直到主线程和AsyncTaskPool处于空闲状态才会运行任何测试。
为了与它取得联系,我创建了一个包含两个活动的简单应用程序,一个启动画面和一个主要活动。 在启动mainActivity
之前,启动画面包含等待三秒钟的内容 new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(intent);
}
}, 3000);
我也尝试过使用AsyncTask,但似乎没有任何工作正常,因为每次测试都失败了。
测试仅检查视图上是否显示包含已定义文本的TextView:
onView(withText("DummyText")).check(matches(notNullValue()));
我认为创建一个简单的测试并不困难......
因为我要测试api> = 16我需要浓缩咖啡。仅仅对我来说,我使用uiAutomator检查它(我知道这是为api> = 18)但是有一些聪明的逻辑可以等待某些东西显示.....并且完美地工作......
答案 0 :(得分:6)
你的活动规则是什么?因为如果它是SplashScreenActivity,测试将立即启动,如果视图不在启动屏幕上,则onView将失败。 尝试直接打开MainActivity,以便测试该视图。 我使用Espresso已经有一段时间了,我知道@Test方法在定义为ActivityTestRule的活动完成加载时开始。
希望这有帮助。
祝你好运!