Hello World Espresso 示例
这是一个创建 hello world 示例的教程:用于此示例:Android Studio 2.3;
要开始使用 Android Studio 创建具有空活动的新项目。然后我们向 App 添加一些我们可以测试的简单功能:我们添加一个按钮,当点击在文本视图中显示 Hello World
时。
活动代码如下所示:
package com.example.testing.helloworld;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView textView = (TextView) findViewById(R.id.textView);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("Hello World!");
}
});
}
}
此活动的 activity_main
布局如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Say Hello" />
</LinearLayout>
现在我们想要使用 espresso 来测试这个新创建的应用程序的行为。通常,你的应用程序本身的代码在 main
包中,单元测试在 test
内,Espresso 仪器测试在 androidTest
包内。如果你使用 Android Studio 创建一个新的空活动项目,它应该已经创建了这些包和类,它应该如下所示:
从 Espresso 开始,我们必须确保 espresso-core
依赖项包含在 build.gradle
文件中(请注意,它不是使用 compile
关键字注释,而是使用 androidTestCompile
注释)。Android studio 创建的 build.gradle
文件中的依赖项应如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}
现在所有设置完成后我们可以从实际测试开始:打开 ExampleInstrumentationTest
文件,你会发现里面已经有一个生成的 useAppContext
测试。我们将更改此测试类并创建测试以检查我们的应用程序行为:
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(
MainActivity.class, false, true);
@Test
public void checkHelloWorld() throws Exception {
onView(withId(R.id.textView)).check(matches(withText("")));
onView(withId(R.id.button)).perform(click());
onView(withId(R.id.textView)).check(matches(withText("Hello World!")));
}
}
通过运行 ExampleInstrumentedTest
类开始测试。然后,这个测试做了三件事:
- 它检查 textview 是否包含空字符串(“”)
- 它单击我们布局中的按钮
- 如果它包含
Hello World!
,它会再次检查 textview 的文本。
顶部的 ActivityTestRule 定义测试哪个活动,并在测试开始时启动它。 (你也可以自动启动活动,然后手动在每个测试中启动它)
测试规则非常简单:
onView(withId(R.id.textView))
通过我们的activity_main
布局文件中的视图 ID 在当前屏幕内查找视图。- 然后
.check(matches(withText("")));
对该视图执行测试用例。 .perform(click())
对视图执行操作:此操作可以是点击,长按或滑动等。
这是一个从 android espresso Instrumentation 测试开始的教程,我希望它给了你一些见解!