Espresso学习笔记一:Espresso的安装与配置
2015-06-16 15:02
344 查看
一.Espresso的安装
因为Espresso包含在Android Support Repository中,所以打开SDK manager,确保在Extras下的Android
Support Repository已被安装,安装后Espresso即可使用。
二.Espresso的配置
打开app下的build.gradle文件
1.在dependencies字段下添加以下内容:
注意:是app/build.gradle文件,而不是顶层的build.gradle文件。
2.在android.defaultConfig字段下设置instrumentation
runner:
以下是build.gradle文件的示例:
三.设置测试的运行环境
在开发者选项中关闭以下三个动画选项:
四.Espresso测试示例:
<span style="font-size:12px;">@RunWith(AndroidJUnit4.class)
@LargeTest
public class HelloWorldEspressoTest extends ActivityInstrumentationTestCase2<MainActivity> {
public HelloWorldEspressoTest() {
super(MainActivity.class);
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
getActivity();
}
@Test
public void testListGoesOverTheFold() {
onView(withText("Hello world!")).check(matches(isDisplayed()));
}
@After
@Override
public void tearDown() throws Exception {
super.tearDown();
}
}</span>
以上两段代码都使用了AndroidJUnitRunner(@RunWith(AndroidJUnit4.class)),这是一个支持Android的新的test runner,它是Android Support Test Library的一部分,用来取代InstrumentationTestRunner,增加了一些新的特性,它支持JUnit4和JUnit3,而后者只支持JUnit3。使用AndroidJUnitRunner,需要使用InstrumentationRegistry手动注入Instrumentation。
第二个测试还使用了ActivityTestRule,这个rule为单个Activity提供了功能测试,被测试的Activity会在每个标记为@Test和@Before的方法调用之前被自动加载完成,因此不需要手动调用getActivity方法。但是如果需要在Activity启动之前进行一些设置的话(比如:在Activity启动前注入测试数据),这种方法就不太合适了。
<span style="font-family: Arial, Helvetica, sans-serif; color: rgba(0, 0, 0, 0.870588); line-height: 32px; background-color: rgb(255, 255, 255);">五.运行测试</span>
在AndroidStudio的Terminal中运行:
./gradlew connectedCheck
因为Espresso包含在Android Support Repository中,所以打开SDK manager,确保在Extras下的Android
Support Repository已被安装,安装后Espresso即可使用。
二.Espresso的配置
打开app下的build.gradle文件
1.在dependencies字段下添加以下内容:
<span style="font-size:12px;"> androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'com.android.support.test:rules:0.3' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2'</span>
注意:是app/build.gradle文件,而不是顶层的build.gradle文件。
2.在android.defaultConfig字段下设置instrumentation
runner:
<span style="font-size:12px;"> testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"</span>
以下是build.gradle文件的示例:
<span style="font-size:12px;">apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example.tiger_miao.androidtestkitexecise" minSdkVersion 16 targetSdkVersion 22 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } packagingOptions { exclude 'LICENSE.txt' } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile 'com.android.support:appcompat-v7:22.2.0' compile 'org.roboguice:roboguice:3.+' provided 'org.roboguice:roboblender:3.+' // Testing-only dependencies androidTestCompile 'com.android.support.test:runner:0.3' androidTestCompile 'com.android.support.test:rules:0.3' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2' }</span>
三.设置测试的运行环境
在开发者选项中关闭以下三个动画选项:
四.Espresso测试示例:
<span style="font-size:12px;">@RunWith(AndroidJUnit4.class)
@LargeTest
public class HelloWorldEspressoTest extends ActivityInstrumentationTestCase2<MainActivity> {
public HelloWorldEspressoTest() {
super(MainActivity.class);
}
@Before
@Override
public void setUp() throws Exception {
super.setUp();
injectInstrumentation(InstrumentationRegistry.getInstrumentation());
getActivity();
}
@Test
public void testListGoesOverTheFold() {
onView(withText("Hello world!")).check(matches(isDisplayed()));
}
@After
@Override
public void tearDown() throws Exception {
super.tearDown();
}
}</span>
<pre name="code" class="java"><span style="font-size:12px;">@RunWith(AndroidJUnit4.class) @LargeTest public class HelloWorldEspressoTest { @Rule public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())); } }</span>
以上两段代码都使用了AndroidJUnitRunner(@RunWith(AndroidJUnit4.class)),这是一个支持Android的新的test runner,它是Android Support Test Library的一部分,用来取代InstrumentationTestRunner,增加了一些新的特性,它支持JUnit4和JUnit3,而后者只支持JUnit3。使用AndroidJUnitRunner,需要使用InstrumentationRegistry手动注入Instrumentation。
第二个测试还使用了ActivityTestRule,这个rule为单个Activity提供了功能测试,被测试的Activity会在每个标记为@Test和@Before的方法调用之前被自动加载完成,因此不需要手动调用getActivity方法。但是如果需要在Activity启动之前进行一些设置的话(比如:在Activity启动前注入测试数据),这种方法就不太合适了。
<span style="font-family: Arial, Helvetica, sans-serif; color: rgba(0, 0, 0, 0.870588); line-height: 32px; background-color: rgb(255, 255, 255);">五.运行测试</span>
在AndroidStudio的Terminal中运行:
./gradlew connectedCheck
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件