Android学习笔记
Android 开发者基础知识 (Java) —— Google Developers 培训团队
文章目录
第2单元 用户体验
第6课 测试界面
85. 进行界面测试的Espresso
你会做什么
- 修改项目以创建 Espresso 测试。
- 测试应用程序的文本输入和输出。
- 测试单击微调器项目并检查其输出。
- 记录一份浓咖啡测试
RecyclerView
。
85.1 在项目中设置Espresso
-
检查Android支持存储库
但是现在已经不用这个了,…
-
为项目配置Espresso
-
关闭测试设备上的动画
开发者选项 → 动画。
85.2 测试Activity切换和文本输入
-
运行示例测试
-
为测试定义一个类并设置活动
类定义现在包括几个注释:
@RunWith
:要创建检测的 JUnit 4 测试类,@RunWith(AndroidJUnit4.class)
请在测试类定义的开头添加注释。@Rule
:@Rule
注释允许您使用 Android 测试支持库提供的测试规则类之一,以可重用的方式添加或重新定义每个测试方法的行为,例如ActivityTestRule
或ServiceTestRule
。上面的规则使用了一个ActivityTestRule
对象,它提供了一个单一的功能测试Activity
——在这种情况下,MainActivity.class
. 在测试期间,您将能够Activity
直接使用ViewMatchers
、ViewActions
和ViewAssertions
.@Test
:@Test
注解告诉 JUnit,public void
它所附加的方法可以作为测试用例运行。测试方法以@Test
注释开头,并包含用于执行和验证您要测试的组件中的单个功能的代码。
-
测试从一个Activity切换到另一个Activity
-
测试文本输入输出
-
引入错误以显示测试失败
85.3 测试微调器的选择
-
创建测试方法
@RunWith(AndroidJUnit4.class) public class SpinnerSelectionTest { @Rule public ActivityTestRule mActivityRule = new ActivityTestRule<>( MainActivity.class);
-
访问用于Spinner项目的数组
@Test public void iterateSpinnerItems() { String[] myArray = mActivityRule.getActivity().getResources() .getStringArray(R.array.labels_array); }
-
找到Spinner项目并单击
onView(withId(R.id.label_spinner)).perform(click()); onData(is(myArray[i])).perform(click()); onView(withId(R.id.text_phonelabel)) .check(matches(withText(containsString(myArray[i]))));
85.4 记录Espresso测试
-
打开并运行应用程序
-
记录测试
85.5 小结
设置 Espresso 以测试 Android Studio 项目:
- 在 Android Studio 中,检查并安装 Android Support Repository。
- 添加
dependencies
到**build.gradle (Module: app)**文件中:
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.1'
- 将以下检测语句添加到该
defaultConfig
部分的末尾:
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
Instrumentation是 Android 系统中的一组控制方法或钩子。
- 在您的测试设备上,关闭动画。为此,请打开 USB 调试。然后在“设置”应用中,选择“开发人员选项”>“绘图”。关闭窗口动画比例、过渡动画比例和动画持续时间比例。
要测试注释:
@RunWith(AndroidJUnit4.class)
:创建一个检测的 JUnit 4 测试类。@Rule
:使用 Android 测试支持库提供的测试规则类之一,以可重用的方式添加或重新定义每个测试方法的行为,例如ActivityTestRule
或ServiceTestRule
。@Test
:@Test
注解告诉 JUnit,public void
它所附加的方法可以作为测试用例运行。
测试代码:
ViewMatchers
类允许您在当前View
层次结构中找到视图,以便您可以检查某些内容或执行操作。ViewActions
类允许您对由ViewMatcher
.ViewAssertions
类允许您断言或检查由ViewMatcher
.
要测试微调器:
onData()
与View
在运行时由适配器动态填充的a 一起使用。getActivity()
通过使用 建立上下文并使用 获取资源实例,从应用程序的数组中获取项目getResources()
。- 用于
onData()
查找并单击每个微调器项目。 onView()
与 aViewAction
and一起使用ViewAssertion
来检查输出是否与选定的微调器项目匹配。
【这只是当时的解释,现在很多方法已经不适用了】