最近在看《Android编程权威指南》,在Windows10下安装了Android Studio3.3,边看编练习书中的例子程序,看到第21章“”音频播放与单元测试”中的21.12 深入学习:Espresso 与整合测试时,发现一个问题:ActivityTestRule这个类无法识别,如下图所示:
ActivityTestRule
把鼠标定位到ActivityTestRule类所在位置,出现Cannot resolve symbol ‘ActivityTestRule’的错误,查阅Android开发文档,
发现需要导入android.support.test.rule.ActivityTestRule
import android.support.tst.rule.ActivityTestRule;
但是导入了之后还是出现Cannot resolve symbol ‘ActivityTestRule’的错误,于是求助于Google,最后发现要使用ActivityTestRule类光导入android.support.test.rule.ActivityTestRule不行,还得添加库依赖项:
添加依赖项有两种方式:
方法一、在项目app所在目录下的build.gradle中添加如下的依赖:
androidTestImplementation 'com.android.support.test:rules:1.0.2'
方法二、:
在Android视图的app项中,选中app,单击鼠标右键,选中“Open Module Settings”,打开【Project Structure】对话框,在app项找到右侧的Dependencies,如下图所示:
选中最右上方的“+”号,添加新的“Library Dependency”,
在文本框中输入rules搜索,如下图所示:
单击OK按钮后,com.android.support.test:rules:1.0.2就导入成功了,
从上图可以看出,rules 1.0.2库默认Scope是Implementation的,如果需要进行测试如Unit Test或者是InstrumentedTest时,则需要修改对应的Scope选项,改成Test Implementation(针对整合测试)或者Unit Test Implementation(针对单元测试),其所在文件app/build.gradle也会相应的修改,如下图所示:
dependencies {
implementation fileTree(inclu: ['*.jar'], dir: 'libs')
implementation 'com.adroid.support:appcompat-v7:28.0.0'
im最后,ActivityTestRule终于可以使用了,如下图所示:
参考了两个资源: