安卓菜鸟一个,以前从来没写过UT,在老大强烈推荐以及要求下,我开始写了UT,接触到了Espresso
首先推荐一篇博客,关于espresso的环境搭建和简单的介绍 http://www.w2bc.com/Article/40324
这里我想说的是,用espresso 实现listview的item中的某个控件的点击事件的测试。
刚开始遇到这个问题,我便搜索了一下,找到这篇文章http://stackoverflow.com/questions/28019843/android-espresso-listview-click-item,然而还是不管用。
onData(hasToString(startsWith("Item Text")))
这个方法一直提示找不到data,各位大神如果知道原因,还请告诉小白。
后来找到解决办法 ,具体如下:
onData(instanceOf(SecretComment.class)) .inAdapterView(allOf(withId(R.id.lv_secret_comment), isDisplayed())) .atPosition(1) .onChildView(withId(R.id.cb_like_comment)) .perform(click());
instanceOf() 可以找到item的数据类型
inAdapterView() 故名思议,根据listview的id 找到adapter
atPosition() 找到listview的某个item
onChildView () 找到item的rootView
withId() 根据id找到某个item中的控件,也可以用withText(),就是通过文本找到控件
perform(click()) 模拟点击事件