Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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 浓缩咖啡&x2B;Junit4-在运行所有测试之前登录一次_Android_Junit4_Android Espresso - Fatal编程技术网

Android 浓缩咖啡&x2B;Junit4-在运行所有测试之前登录一次

Android 浓缩咖啡&x2B;Junit4-在运行所有测试之前登录一次,android,junit4,android-espresso,Android,Junit4,Android Espresso,我想为我的一个应用程序编写一些自动化测试。所有功能都需要登录 所以,我编写了一个测试,但对于每个测试,它都是登录和测试功能。是否有任何方法可以帮助我只登录一次,然后运行所有测试 最简单的方法是只在一个测试方法中编写所有测试。但我认为这将是一个丑陋的方式来实现这一点。任何更干净的解决方案,所以,测试将只登录一次,然后运行测试集 以下是我的测试代码: @RunWith(AndroidJUnit4.class) public class AllDisabledTest { public sta

我想为我的一个应用程序编写一些自动化测试。所有功能都需要登录

所以,我编写了一个测试,但对于每个测试,它都是登录和测试功能。是否有任何方法可以帮助我只登录一次,然后运行所有测试

最简单的方法是只在一个测试方法中编写所有测试。但我认为这将是一个丑陋的方式来实现这一点。任何更干净的解决方案,所以,测试将只登录一次,然后运行测试集

以下是我的测试代码:

@RunWith(AndroidJUnit4.class)
public class AllDisabledTest {
    public static final String USER_NAME = "all_disabled";
    public static final String DISPLAY_NAME = "All Disabled";
    public static final String PASSWORD = "1234";

    @Rule
    public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>(
            LoginActivity.class);

    @Before
    public void loginToApp(){

        onView(withId(R.id.edit_email)).perform(replaceText(USER_NAME));
        onView(withId(R.id.edit_password)).perform(replaceText(PASSWORD));

        onView(withId(R.id.login_button)).perform(click());
    }

    @Test
    public void checkIfFoodItemAddedToCart(){
        onData(anything()).inAdapterView(withId(R.id.menu_item_grid)).atPosition(2).perform(click());

        onData(anything()).inAdapterView(withId(R.id.listview)).atPosition(0).onChildView(withId(R.id.item_name)).check(matches(withText("BLUEITEM")));
    }
}
@RunWith(AndroidJUnit4.class)
公共类AllDisabledTest{
公共静态最终字符串USER\u NAME=“全部禁用”;
公共静态最终字符串显示\u NAME=“全部禁用”;
公共静态最终字符串密码=“1234”;
@统治
公共活动测试规则mActivityRule=新活动测试规则(
物流活动(类);
@以前
public void loginToApp(){
onView(带id(R.id.edit_email)).perform(replaceText(用户名));
onView(使用id(R.id.edit_密码)).perform(replaceText(密码));
onView(使用id(R.id.login_按钮)).perform(单击());
}
@试验
公共无效检查iffooditemaddedtocart(){
onData(anything()).inAdapterView(带id(R.id.menu\u item\u grid)).atPosition(2).执行(单击());
onData(anything()).inAdapterView(withId(R.id.listview)).atPosition(0).onChildView(withId(R.id.item_name)).check(匹配)(withText(“BLUEITEM”));
}
}

提前感谢:)。

您可以使用带有@BeforeClass和@AfterClass注释的方法

@RunWith(AndroidJUnit4.class)
public class AllDisabledTest {
    public static final String USER_NAME = "all_disabled";
    public static final String DISPLAY_NAME = "All Disabled";
    public static final String PASSWORD = "1234";

    @Rule
    public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule<>(
            LoginActivity.class);
    }

    @BeforeClass
    public static void setUpBeforeClass() {
        // do login stuff here
    }

    @AfterClass
    public static void tearDownAfterClass() {
        // ...
    }

    // ...
}
@RunWith(AndroidJUnit4.class)
公共类AllDisabledTest{
公共静态最终字符串USER\u NAME=“全部禁用”;
公共静态最终字符串显示\u NAME=“全部禁用”;
公共静态最终字符串密码=“1234”;
@统治
公共活动测试规则mActivityRule=新活动测试规则(
物流活动(类);
}
@课前
公共静态无效SetupForeClass(){
//在这里登录
}
@下课
公共静态void tearDownAfterClass(){
// ...
}
// ...
}
注意:@BeforeClass和@AfterClass方法必须是静态的