Android Studio Espresso测试配置

Espresso是Google自家的一个UI测试框架,虽然没有推出正式版,但是目前已经是可用的了。优点是语法非常简单,缺点还是只能支持本应用内部测试。
如果你只是想要一个简单的UI自动化测试框架,Espresso是个不错的选择。

其他网友的Espresso简单介绍

Gradle配置

因为是自家的所以配置非常简单。只需要在build.gradle文件进行配置即可。配置文件如下,注意的地方都标注了。配置好之后Sync Projct之后就可以使用了。

../app/build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.example.espressotest"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

        //set test runer
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    packagingOptions{
        exclude 'LICENSE.txt'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.0.0'
    // Testing-only dependencies
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
}

测试实例

测试类位置为..app/src/androidTest/java/packagename

package com.example.espressotest;

import static android.support.test.espresso.Espresso.*;

import static android.support.test.espresso.matcher.ViewMatchers.*;

import static android.support.test.espresso.assertion.ViewAssertions.*;

import android.support.test.espresso.action.ViewActions;
import android.test.ActivityInstrumentationTestCase2;

/**
 * onView(),matches()等方法都是静态,所以这里为了方便使用使用静态导入
 */
public class TextTest extends ActivityInstrumentationTestCase2<MainActivity> {

    private static String TAG = "TextTest";
    private Activity activity;

    public TextTest() {
        super(MainActivity.class);
    }

    public TextTest(Class<MainActivity> activityClass) {
        super(activityClass);
    }

    @Override
    protected void setUp() throws Exception {
        super.setUp();
        // 准备好测试的Activity
        // activity = getActivity();
        getActivity();
    }
    // 测试方法使用test开头
    public void test_text() {
        String hello = getActivity().getResources().getString(R.string.hello_world);

        // 测试控件显示内容
               onView(withId(R.id.textView)).check(matches(withText(hello)));
    }

    public void test_showing() {

// 测试控件隐藏显示      
   onView(withId(R.id.textView)).check(matches(isDisplayed()));
    }

    public void test_enable() {
        // 测试控件是否可用  
         onView(withId(R.id.textView)).check(matches(isEnabled()));
    }

    public void test_DilogShowing() {
// 通过对话框控件来测试对话框是否显示
        onView(withId(R.id.textView)).perform(ViewActions.click());

    // 也可以通过内容来对应控件,当然不能有内容相同的冲突
        onView(withText("dialog")).check(matches(isDisplayed()));
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章