首页 > 解决方案 > 在使用 Espresso 应用程序运行 android 测试期间,在登录状态的主页上启动

问题描述

我使用 Espresso 框架为 android 应用程序创建自动化测试。但是对于我运行的任何测试 - 由于某种原因,主页(用户登录后的第二页)上的应用程序星号。我重新安装了我的模拟器以确保它不会兑现任何东西 - 但在第一次测试运行之后(在第一个测试步骤之前) - 应用程序在主屏幕上运行。有没有人有这样的东西?

标签: androidautomationautomated-testsandroid-espresso

解决方案


这是一个片段,它告诉 Espresso,在开始测试时应该使用哪个活动。(也请检查 JUnit 版本)。

@LargeTest
@RunWith(AndroidJUnit4.class)

public class clickButtonTest {

    @Rule
    public ActivityTestRule<YourActivityName> mActivityTestRule =
        new ActivityTestRule<>(YourActivityName.class);
    private YourActivityName mainActivity;


    @Before
    public void setActivity() {
        mainActivity = mActivityTestRule.getActivity();
        // Here you add required initializations / definitions
    }

    @Test
    public void clickButton () {

        // Click on button
        onView(withId(R.id.button_id)).perform(click());

ActivityTestRule 你给了你想要 Espresso 执行的 Activity,这样当你开始测试时就会打开这个视图。在这种情况下,您需要找到正确的活动,在这种情况下应该是用户登录屏幕?要在您的应用程序中查找活动,您需要打开 AndroidManifest.xml 并找到合适的活动。关于 AndroidManifest.xml

找到正确的活动后,将其填充到“YouActivityName”块中。然后按应有的方式填写@Test。这取决于您计划如何设计测试用例,但良好的做法是测试彼此独立,它们不相互依赖,因为这通常会导致不稳定。

此外,还有阅读有关 Gradle、动画和其他 Espresso 的好资源。浓缩咖啡设置


推荐阅读