gpt4 book ai didi

android - Espresso,使用登录屏幕测试快乐路径

转载 作者:行者123 更新时间:2023-11-30 01:31:44 26 4
gpt4 key购买 nike

我正在尝试基于 Espresso 测试我的快乐之路。我的流程是这样的:
SplashActivity -> Activity_1 -> Activity_2 -> Activity_3 -> Activity_4。
Activity_1 中有一个按钮,如果用户尚未登录则将用户定向到 Activity_2 否则 Activity_3 用于预订。

如果应用朝这个方向发展,我的测试就会通过 SplashActivity -> Activity_1 -> Activity_3 ->...。但是我遇到了异常,android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: 当用户没有登录因此应用程序以这种方式运行时 SplashActivity -> Activity_1 -> Activity_2 ->...

这很明显,因为我的测试需要 Activity_3Activity_2 是可见的。

这是我的测试:

@RunWith(AndroidJUnit4.class)
public class MinHappyPathTest
{
@Rule
public ActivityTestRule<Activity_1> mActivityTestRule = new ActivityTestRule<>(Activity_1.class);

private Activity_1 mActivity_1;

@Before
public void setup()
{
mActivity_1 = mActivityTestRule.getActivity();
}

@Test
public void HappyPathMinimumTest() throws InterruptedException
{
// Wait to everything settles down (few animations there)
Thread.sleep(2000);

// On mActivity_1 press the button
onView(withId(R.id.btnNext)).perform(click());

// On mActivity_3 onView(withId(R.id.editText)).perform(typeText(destination_short_name), ViewActions.closeSoftKeyboard());
Thread.sleep(1000); // to results displays
onView(allOf(withId(R.id.recycler_view), isDisplayed()))
.perform(RecyclerViewActions.actionOnItemAtPosition(2, click()));

// Other tests...
}
}

我有两个问题:

  1. 如何在 Activity_1 之后放置基于 Activity 的 if 语句可见?
  2. 根据我的发现,与单元测试不同的是,您可以选择一个类并针对它执行测试,而在 Espresso 中做同样的事情是不可能的。例如,我直接运行 mActivity_4 并对其进行测试,因为当应用程序启动时 mActivity_1 默认显示并且我得到 NoMatchingViewException。我对吗?我实际测试过,看起来像那样。

最佳答案

我认为您收到 NoMatchingViewException 是因为您正在使用 Thread.sleep。它不适用于 Espresso。您应该使用 IdlingResources 来通知 Espresso 何时可以继续。请在此处查看此类 IdlingResource 实现的示例 - http://droidtestlab.com/delay.html

关于android - Espresso,使用登录屏幕测试快乐路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659744/

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