首页 > 代码库 > 单元测试布局

单元测试布局

1、xml布局
、、、

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />
<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textView"
    android:hint="Enter your name here" />

<Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/editText"
    android:onClick="sayHello"
    />


、、、

2、MainActivity
、、、
package com.edu.niit.ceshi;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

public void sayHello(View v) {
    TextView textView = (TextView) findViewById(R.id.textView);
    EditText editText = (EditText) findViewById(R.id.editText);
    textView.setText("Hello," + editText.getText().toString() + "!");
}

}
、、、

3、测试程序

private static final String STRING_TO_BE_TYPED = "Peter";

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

@Test
public void sayHello() {
    onView(withId(R.id.editText))
            .perform(typeText(STRING_TO_BE_TYPED),
                    closeSoftKeyboard());

    onView(withText("Say hello!")).perform(click());

    String expectedText = "Hello," + STRING_TO_BE_TYPED + "!";
    onView(withId(R.id.textView))
            .check(matches(withText(expectedText)));
}

、、、

结果成功

单元测试布局