java 在Android测试中如何使用espresso-intents的示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 在Android测试中如何使用espresso-intents的示例相关的知识,希望对你有一定的参考价值。

package com.collectiveidea.example;

import android.content.Intent;
import android.support.test.espresso.intent.Intents;
import android.support.test.rule.ActivityTestRule;
import android.support.test.runner.AndroidJUnit4;

import com.collectiveidea.example.ui.LoginActivity;
import com.collectiveidea.example.ui.MainActivity;
import com.collectiveidea.example.util.AccountUtility;

import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;

import static android.support.test.espresso.intent.Intents.intended;
import static android.support.test.espresso.intent.Intents.times;
import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent;

@RunWith(AndroidJUnit4.class)
public class MainActivityTest {

    @Rule
    public final ActivityTestRule<MainActivity> rule =
            new ActivityTestRule<>(MainActivity.class, true, false);

    @Test
    public void testWhenThereInNoExistingAccount_LaunchesLoginActivity() throws Exception {
        Intents.init();

        AccountUtility.removeAccounts();
        rule.launchActivity(new Intent());

        intended(hasComponent(LoginActivity.class.getName()));

        Intents.release();
    }

    @Test
    public void testWhenThereIsAnExistingAccount_DoesNotLaunchLoginActivity() throws Exception {
        Intents.init();

        AccountUtility.addAccount("email@example.com", "TOKEN");
        rule.launchActivity(new Intent());

        intended(hasComponent(MainActivity.class.getName()));
        intended(hasComponent(LoginActivity.class.getName()), times(0));

        Intents.release();
    }
}

以上是关于java 在Android测试中如何使用espresso-intents的示例的主要内容,如果未能解决你的问题,请参考以下文章

Android Espresso 测试 withHint 不起作用

UI集成测试运行说明

UI集成测试运行说明

Espresso Android,点击 WebView 元素错误

Android 手机自动化测试工具有哪几种

java 在Android测试中如何使用espresso-intents的示例