gpt4 book ai didi

Android:Espresso 不会等到显示 fragment 或 Activity ,所以每个测试都失败了

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:36:49 28 4
gpt4 key购买 nike

我知道围绕这个有很多问题,但我找不到任何可以帮助我的东西:(

我尝试使用 Espresso 为 Android 应用程序生成 UI-Test。在克服依赖性问题后(因为某些库作为其他库的依赖性在不同版本中包含两次)我仍然无法创建工作测试...

我知道 IdlingResource,但据我所知,espresso 会开箱即用地等待主线程和 AsyncTaskPool 空闲,然后再运行任何测试。

为了接触它,我创建了一个简单的应用程序,其中包含两个 Activity ,一个闪屏和一个主 Activity 。启动画面包含类似这样的内容,用于在启动 mainActivity 之前等待三秒钟

 new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
startActivity(intent);
}
}, 3000);

我也尝试为此使用 AsyncTask,但似乎没有什么能正常工作,因为每个测试都失败了。

该测试仅检查包含定义文本的 TextView 是否通过以下方式显示在 View 上:

onView(withText("DummyText")).check(matches(notNullValue()));

我认为创建一个简单的测试不会那么困难......

因为我必须针对 api>=16 进行测试,所以我需要 Espresso 。就我而言,我使用 uiAutomator 检查了它(我知道它适用于 api >=18),但有智能逻辑等待显示某些内容......并且完美运行......

最佳答案

您的 Activity 规则是什么?因为如果是 SplashScreenActivity,测试将立即开始,如果 View 不在启动屏幕上,onView 将失败。尝试直接打开 MainActivity,以测试该 View 。我使用 Espresso 有一段时间了,我知道 @Test 方法在定义为 ActivityTestRule 的 Activity 完成加载时启动。

希望这对您有所帮助。

祝你好运!

关于Android:Espresso 不会等到显示 fragment 或 Activity ,所以每个测试都失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35454421/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com