TA的每日心情 | 奋斗 2021-8-6 16:14 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
Espresso环境搭建
下面将基于Android Studio,介绍如何搭建Espresso.
1. 在Android Studio中新建一个Project;
2. 修改Project中App/build.gradle脚本;
主要修改3处:
1) 在defaultConfig内增加,testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
,用来运行脚本;
2) 增加packagingOptions,避免编译时候Liscens的冲突;
3) 在dependencies中增加Espresso相关的引用;
解释一下exclude group: 'javax.inject',如果项目中有用Dagger或者Dagger2的话(Dagger是一个好东
西),不加这行会编译失败的.
复制代码
- apply plugin: 'com.android.application'
- android {
- compileSdkVersion 22
- buildToolsVersion "22.0.1"
- defaultConfig {
- applicationId "com.example.yezhenrong.myapplication"
- minSdkVersion 15
- targetSdkVersion 22
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- packagingOptions {
- exclude 'LICENSE.txt'
- }
- }
- dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- compile 'com.android.support:appcompat-v7:22.1.1'
- // Espresso 相关的引用
- compile 'com.android.support:support-annotations:22.1.1'
- androidTestCompile 'com.android.support:support-annotations:22.1.1'
- androidTestCompile('com.android.support.test.espresso:espresso-core:2.1'){
- exclude group: 'javax.inject'
- }
- androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.1'
- androidTestCompile 'com.android.support.test.espresso:espresso-contrib:2.1'
- androidTestCompile 'com.android.support.test:runner:0.2'
- }
复制代码
复制代码
3. 添加Espresso的TestRunner.
1) 点击顶栏菜单Run->Edit Configurations;
2) 出现如下的窗口后,点击左上角的"+",选择"Android Tests";
3) 修改新Configuration的名字,选中App Module,输入Runner,选择"Show chooer dialog".
点击"OK"完成!
4. 新建测试用例了类.
在app/androidTest/java下新建一个类,比如如下图MainActivityTest.class,这个就是我们具体的测试用例的类了.
5. 开始写测试用例了.
1) 首先创建一个@Rule,ActivityTestRule用来指明被测试的Activity;
2) 测试用例的方法都是@Test的Annotation注解的,方法名字可以随意.
还可以写setup()和tearDown()方法.
没错,Espresso的测试框架就是基于Junit的.
3) 测试方法testTextViewDisplay()里面:
复制代码
- ...
- import static android.support.test.espresso.Espresso.onView;
- import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
- import static android.support.test.espresso.matcher.ViewMatchers.withText;
- @RunWith(AndroidJUnit4.class)
- public class MainActivityTest {
- @Rule
- public ActivityTestRule mActivityRule = new ActivityTestRule(MainActivity.class);
- @Test
- public void testTextViewDisplay() {
- onView(withText("Hello world!")).check(ViewAssertions.matches(isDisplayed()));
- }
- }
复制代码
复制代码
onView(withText("Hello world!")).check(ViewAssertions.matches(isDisplayed()));
这行代码都是顾名思义就能猜出意义,大概意思是根据"Hello world!"找到指定的view,然后检查这个view
是否isDisplayded(可见).
Espresso提供的UI自动化的API很丰富,这里有个简单的他们类的层级关系.
Espress推荐写测试用例的时候使用static import来简化代码.在Android Studio中,static import的快捷键是,
当你输入了"onView",然后按键盘的Alt+Enter会出现一个菜单选static import那个就搞定了!(如下图)
6. 运行测试用例,查看运行结果.
|
|