android 测试框架 Espresso的使用
先配置一下
点击
根据下图选好
再去 model 的 build.gradle 中添加依赖
1:添加在 defaultConfig 下面 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" (默认是添加了的)
2:
androidTestCompile 'com.android.support:support-annotations:24.2.1' (这个后面的版本号跟v7包保持一致)
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2'
接下来是代码部分
1,要测试哪个activity 就直接在 activity中右键--》go to --》test --》create new test--》。。。。跟着提示来就行
2,
举个例子:我取名WelcomeActivity,那么通过 1 的步骤我成功创建了WelcomActivityTest 这个测试类,但是这个测试类是空的,所以接下里
第一步:@RunWith(AndroidJUnit4.class) ,这个是更改 测试编译器,现在我们是测试android ,假如测试java业务代码可以改成Junit4.class,编译器集中,目前我就只了解这两种
第二步:确认要测试的activity,其实 1 中的步骤只是快速创建测试类而已,跟要测哪个activity是没关系的,所以 1 的步骤可以用直接在androidTest目录下创建测试类来取代,回归正题,
@Rule
public ActivityTestRule<WelcomActivity> mActivityTestRule = new ActivityTestRule<WelcomActivity>(WelcomActivity.class);
这里的@Rule 就是确认测试的activity,下面的代码照些就行
第三步: 找到 view --》给view添加值--》结果比对。大概思路就是这样,
@Test
public void inputText(){ Espresso.onView(ViewMatchers.withId(R.id.edittext)).perform(ViewActions.click()).perform(ViewActions.replaceText("abc")); Espresso.onView(ViewMatchers.withId(R.id.button)).perform(ViewActions.click()); Espresso.onView(ViewMatchers.withId(R.id.result_textview)).check(ViewAssertions.matches(ViewMatchers.withText("abc")));
}
这里代码的意思就是:获取到EditText,点一下,输入abc,接着获取button,点击一下button,再获取Textview ,看textview的内容是不是abc。
注意点:测试方法要有@Test 修饰,onView()就是找你想找的view,可以通过id啊,text啊,等标识来查找,perform()是动作的意思,比如点击view,给edittext 输入内容。check()就是结果对比,判断自己给定的内容与实际内容是否符合。