zoukankan      html  css  js  c++  java
  • 安卓UI测试(基于Android Studio的Espresso框架)

    XML文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:tools="http://schemas.android.com/tools"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent"
     6     android:orientation="vertical"
     7     tools:context="cn.edu.niit.testforgit.MainActivity">
     8 
     9     <TextView
    10         android:id="@+id/textView"
    11         android:layout_width="match_parent"
    12         android:layout_height="wrap_content"
    13         android:text="Hello"
    14         android:textAlignment="center" />
    15 
    16     <EditText
    17         android:id="@+id/editText"
    18         android:layout_width="match_parent"
    19         android:layout_height="wrap_content"
    20         android:layout_below="@+id/textView"
    21         android:hint="Enter your name here" />
    22 
    23     <Button
    24         android:id="@+id/button"
    25         android:layout_width="match_parent"
    26         android:layout_height="wrap_content"
    27         android:text="Say hello!" />
    28 </LinearLayout>

    MainActivity代码

     1 package cn.edu.niit.testforgit;
     2 
     3 import android.support.v7.app.AppCompatActivity;
     4 import android.os.Bundle;
     5 import android.view.View;
     6 import android.widget.Button;
     7 import android.widget.EditText;
     8 import android.widget.TextView;
     9 
    10 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    11 
    12     private TextView textView;
    13     private EditText editText;
    14     private Button button;
    15 
    16     @Override
    17     protected void onCreate(Bundle savedInstanceState) {
    18         super.onCreate(savedInstanceState);
    19         setContentView(R.layout.activity_main);
    20         sayHello();
    21     }
    22 
    23     public void sayHello() {
    24         textView = (TextView) findViewById(R.id.textView);
    25         editText = (EditText) findViewById(R.id.editText);
    26         button = (Button) findViewById(R.id.button);
    27         button.setOnClickListener(this);
    28     }
    29 
    30     @Override
    31     public void onClick(View v) {
    32         switch (v.getId()) {
    33             case R.id.button:
    34                 textView.setText("Hello," + editText.getText().toString() + "!");
    35                 editText.setText("");
    36                 break;
    37         }
    38     }
    39 }

    MainActivity测试代码MainActivityInstrumentationTest代码

     1 package cn.edu.niit.testforgit;
     2 
     3 import android.support.test.filters.LargeTest;
     4 import android.support.test.rule.ActivityTestRule;
     5 import android.support.test.runner.AndroidJUnit4;
     6 
     7 import org.junit.Rule;
     8 import org.junit.Test;
     9 import org.junit.runner.RunWith;
    10 
    11 import static android.support.test.espresso.Espresso.onView;
    12 import static android.support.test.espresso.action.ViewActions.click;
    13 import static android.support.test.espresso.action.ViewActions.closeSoftKeyboard;
    14 import static android.support.test.espresso.action.ViewActions.typeText;
    15 import static android.support.test.espresso.assertion.ViewAssertions.matches;
    16 import static android.support.test.espresso.matcher.ViewMatchers.withId;
    17 import static android.support.test.espresso.matcher.ViewMatchers.withText;
    18 
    19 
    20 /**
    21  * Created by Wang Yifan on 2017/03/15.
    22  */
    23 
    24 @RunWith(AndroidJUnit4.class)
    25 @LargeTest
    26 public class MainActivityInstrumentationTest {
    27     private static final String STRING_TO_BE_TYPED = "Peter";
    28     @Rule
    29     public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
    30             MainActivity.class);
    31 
    32     @Test
    33     public void sayHello() {
    34         onView(withId(R.id.editText)).perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard());
    35         onView(withText("Say hello!")).perform(click());
    36         String expectedText = "Hello," + STRING_TO_BE_TYPED + "!";
    37         onView(withId(R.id.textView)).check(matches(withText(expectedText)));
    38     }
    39 }

    测试结果

  • 相关阅读:
    批量渲染烘焙贴图工具
    Reset textruemap _path of ZIP and copy allfiles to samepackage
    剔除数组中的相同元素
    选择样条曲线的OPEN 点
    帮朋友修改的小工具
    MAX脚本规范
    jQuery牛人
    最近在连远程的时候,粘贴数据库中数据信息时,为什么会不成功呢
    最近在连远程的时候,粘贴数据库中数据信息时,为什么会不成功呢
    Model层代码自动生成
  • 原文地址:https://www.cnblogs.com/Wwwyyf/p/6569366.html
Copyright © 2011-2022 走看看