一直不知道android的使用onView之类的测试较什么,所以查找andorid测试的时候只找到基础,后面终于知道这种叫Espersso测试。结合网上的参考,我认为有必要写篇文整理:
参考文章(最后一个是官方例子)
http://www.jianshu.com/p/22a09ae7b995
http://www.jianshu.com/p/00ab03f3d394
https://github.com/googlesamples/android-testing
首先,明确一下,测试分三步:初始化控件,操作控件,检查结果
初始化
初始化Activity
两步,定义规则(在哪一页)和初始化intent[该步骤在不需要intent传值时可省],注意,ActivityTestRule
public class MainActivityInstrumentationTestprivate static final String STRING_TO_BE_TYPED = "Peter";
@Rule
public ActivityTestRule<TestUnitActivity> mActivityRule = new ActivityTestRule<>(
TestUnitActivity.class);
@Test
public void sayHello(){
Intent intent = new Intent();
intent.putExtra("name","dyy");
mActivityRule.launchActivity(intent)
}
}
初始化View
测试里面的View不叫View,叫ViewInteraction,获取方法(有很多种,因为一般操纵的view都有id,所以就用withId):
ViewInteraction view = onView(withId(R.id.my_view));然后是操作控件:
view.perform([一些操作]);
常用操作,可用逗号分隔:
click():
返回一个点击action,Espresso利用这个方法执行一次点击操作,就和我们自己手动点击按钮一样,只不过Espresso把点击这个操作自动化了,下面的方法都是一样的道理,就不再赘述了.
clearText():
返回一个清除指定view中的文本action,在测试EditText时用的比较多
swipeLeft():
返回一个从右往左滑动的action,这个在测试ViewPager时特别有用
swipeRight():
返回一个从左往右滑动的action,这个在测试ViewPager时特别有用
swipeDown():
返回一个从上往下滑动的action
swipeUp():
返回一个从下往上滑动的action
closeSoftKeyboard():
返回一个关闭输入键盘的action
pressBack():
返回一个点击手机上返回键的action
doubleClick():
返回一个双击action
longClick():
返回一个长按action
scrollTo():
返回一个移动action
replaceText():
返回一个替换文本action
openLinkWithText():
返回一个打开指定链接action
一般的写法是:
onView(withId(R.id.xx)).perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard());
或者:
onView(withId(R.id.xx)).check(matches(withText(“xx”)));
就是获取控件的语句和perform连用或者check连用,一般是二选一,当然,连起来也可以:
onView(withId(R.id.xx)).perform(typeText(STRING_TO_BE_TYPED), closeSoftKeyboard()).check(matches(isDisplayed()));
以上,是许多网页都找的到的,等我把官方的研究完,再写个2