简单解释一下android.test包下的其他测试类,给大家一个了解。
[b]Interfaces[/b]
PerformanceTestCase
PerformanceTestCase.Intermediates
TestSuiteProvider
[b]Classes[/b]
ActivityInstrumentationTestCase
ActivityInstrumentationTestCase2
ActivityTestCase
ActivityUnitTestCase
AndroidTestCase
AndroidTestRunner
ApplicationTestCase
InstrumentationTestCase
InstrumentationTestRunner
InstrumentationTestSuite
IsolatedContext
LoaderTestCase
MoreAsserts
ProviderTestCase
ProviderTestCase2
RenamingDelegatingContext
ServiceTestCase
SingleLaunchActivityTestCase
SyncBaseInstrumentation
TouchUtils
ViewAsserts
以上列出的是android.test包下的所有接口以及类,那么简单了解一下,起码能够不盲目崇拜框架,市场上的大多数框架都是基于android.test包来实现的,如果你发现没有针对于它们来实现的,那么有可能就是有root权限的手机,或者操作系统是自己的手机反射来进行测试的,不过我也不能绝对这么说,如果有其他好玩的框架,欢迎留言,我也去研究研究,谢谢。
Interface接口
接口部分包含3个接口PerformanceTestCase、PerformanceTestCase.Intermediates、TestSuiteProvider。
PerformanceTestCase性能测试接口,也是当前某些测试开发工程师或者开发熟知的这么一个性能测试手段,需要进行性能测试的类需要实现这个接口,采用白盒代码注入的方式获取当前类的性能,这种方式不能讲测试与开发代码进行很好的分离,当前使用范围不大。不过推荐开发同学使用这种方式自测。
PerformanceTestCase.Intermediates接口,是实现PerformanceTestCase类的回调方法,用于收集相关的数据。使用方式: startPerformance (PerformanceTestCase.Intermediates intermediates),实现PerformanceTestCase的类可以直接调用startPerformance 方法。
TestSuiteProvider这个接口一般都不会直接使用,子类InstrumentationTestRunner比它好用,这个接口就是获取一下testsuite。
classes相关类
ActivityInstrumentationTestCase,这是一个废弃功能测试类,在API3之前的才可以使用,也就是android操作系统1.5版本,对当前的测试开发工程师来说,恩恩,忽略它吧。
ActivityInstrumentationTestCase2,这个是当前主流用于测试apps功能的测试类,大名鼎鼎的robotium就是基于这个类来实现的,当前这个类的底层也用时instrmentation去玩android的,这个类直接使用系统底层资源来做测试,运行在ui线程中,意思就是,你使用这个类进行测试,肯定是需要将apps运行起来的,能看见界面的。他的父类是android.test.ActivityTestCase,爷爷是android.test.InstrumentationTestCase,你看这个拼爹的时代,有个好爹,这个类就非常好用了。
ActivityTestCase,这个类其实我个人认为没有存在的必要,作为一个父亲没有做到父亲的职责,就是让集成它的儿子们属性看起来明显一点,恩,看你们集成ActivityTestCase肯定是测试Activity的,好吧,不推荐大家去使用了,它就是对爷爷instrumentationtestcase的集成,好用的功能都在instrumentationtestcase里呢,对于父亲来讲,这一代家道中落。
ActivityUnitTestCase,这个见我上一篇博客,我详细的说过。
AndroidTestCase,这个类提供了可以让我们控制context的入口,Context是什么呢,我个人理解的,如果你做过j2ee开发,我理解这个context就是application session,全局变量,在整个系统中我都能够调用它,用它来传递一些信息。并且多一个功能,我们可以理解为call,可以call一些功能,例如activity,接个广播之类的。我们可能用它不多,主要看看它有什么子类,ApplicationTestCase<T extends Application>, LoaderTestCase, ProviderTestCase2<T extends ContentProvider>, ServiceTestCase<T extends Service>,呵呵,看这些子类我们知道,父亲就为他们干了一件共同的事那就是Context,那么具体你测试什么,你得用我儿子的技能才行啊。
AndroidTestRunner,最基础的runner类,来抓取运行过程中和运行结束后的一些数据,没有具体使用过。
ApplicationTestCase,主要用來测试Application,提供了对Application类生命周期方法的基本支持,並可以支持一些dependency injection 以帮助构造Application的环境,你有你再调用了createApplication之后才能嗲用oncreate方法。这个部分需要大家对android生命周期有相关的了解。依赖注入这里,我们可以设置context对象来调用,也可以mock context对象。
InstrumentationTestCase,android底层最核心调用activity的基础里,不要求大家去直接使用它,但是需要知道它能做什么,有那些类是基于它实现的,他能够开启activity,携带intent开启activity,并发send一些命令,让手机或者虚拟机执行这些命令。看一下它的儿孙们:Known Direct Subclasses
ActivityTestCase, ProviderTestCase<T extends ContentProvider>, SingleLaunchActivityTestCase<T extends Activity>, SyncBaseInstrumentation
Known Indirect Subclasses
ActivityInstrumentationTestCase<T extends Activity>, ActivityInstrumentationTestCase2<T extends Activity>, ActivityUnitTestCase<T extends Activity>,它的儿孙们这些你应该熟知几样吧,很多功能都是从它这来的,然后进一步封装,来对android系统来发送相关的操作命令。
InstrumentationTestRunner这个类和AndroidTestRunner类似,这个类现在我们主要用作重写测试报告用的,他可以运行测试类,suite,获取类名方法名,获取到测试结果,那结果生成到eclipse,junit结果,你不喜欢看,那么很多人就重写这个类把结果写到xml文件里,哦,然后生成你想看到的报告,就是冲这来的。可以直接使用adb shell am instrument -w命令行来调用它的相关功能。
InstrumentationTestSuite这个倒是没什么,就是类junit一样的一个testsuite类,可以将测试方法作为suite,批量执行。
IsolatedContext,一个mock的Context对象,他的爷爷就是Context对象。
LoaderTestCase,这个个人没有使用过,留着以后调研一下吧
MoreAsserts,这个类提供了一些在junit中你找不到的assert方法,比较实用,推荐。
ProviderTestCase,与ActivityInstrumentationTestCase类似,已经被弃用。API3
ProviderTestCase这个类主要是来测试 ContentProvider的,ContentProvider为存储和读取数据提供了统一的接口,ContentProvider可以让应用进行数据共享,那么ProviderTestCase这个类主要是用来测试,数据读取的,它与serviceTestCase一样属于组件级别的测试。
ServiceTestCase,这个类是做androidservice测试的,可以使用intent进行传递开启service服务,服务开启后你的应用会做什么样的事情,你自己要清楚,然后针对服务器开后的相关操作来进行验证。
SingleLaunchActivityTestCase,不清楚
SyncBaseInstrumentation,不清楚
TouchUtils,一个工具类用于你方便进行拖拽,下拉,长按等。
ViewAsserts,一个关于view方面的assert方法的集合类。
分享到:
相关推荐
测试类通常会继承`AndroidJUnit4`类,并使用`@RunWith(AndroidJUnit4.class)`注解标记,这样测试运行器就能识别并运行这些测试。 然后,我们提到的`junitest`可能包含了使用JUnit框架的基础测试。JUnit是Java领域...
首先,在Android项目中创建一个测试目录,通常位于`app/src/androidTest/java`。然后,在这个目录下创建一个新的Java类,继承自`androidx.test.ext.junit.runners.AndroidJUnit4`。这样,你的测试类就可以使用JUnit...
`src`目录包含了应用的源代码,测试类通常放在`src/test`或`src/androidTest`目录下,这里你可以编写测试按键输入的代码。 `assets`目录用于存放应用运行时需要的非编译型资源,例如文本文件或数据库初始数据。 `...
首先,我们来了解一下android的测试类的层次结构:可以看出android中的测试方法主要有AndroidTextCase和InstrumentationTextCase。在这篇文章中,我将介绍Instrumentation这种测试方法,那么什么是Instrumentation?...
- 编写对应的测试类,通常位于`app/src/test/java`目录下,继承自`AndroidJUnit4`,并使用`@Test`注解标记测试方法。 - 在测试方法中,可能包括对Activity的启动、文本显示的断言等,确保"HelloWorld"字符串正确...
测试类通常位于项目的`src/androidTest/java`目录下,使用JUnit框架和AndroidX测试库。在测试数据库操作时,我们可以使用`@Rule`注解配合`SqliteInMemoryDatabaseRule`或`@嵌入式SQLite数据库`来创建临时的内存...
3. **编写测试类**:在`src/androidTest/java`目录下创建测试类,继承自`AndroidJUnit4`,例如`HelloAndroidTest.kt`。在测试类中,可以定义一系列`@Test`注解的方法,每个方法代表一个测试用例。 4. **编写测试...
测试类位于`src/androidTest/java`目录下。 2. 编写Espresso测试用例:Espresso测试涉及模拟用户操作和检查视图状态。例如: ```java @Test public void buttonClickOpensActivity() { onView(withId(R.id.button)...
测试类通常放在src/test/java目录下,与被测试类相同的包结构,只是顶级包名为`test`。例如,如果我们要测试`com.example.myapp.MyClass`,则测试类应命名为`com.example.myapp.test.MyClassTest`。 在JUnit测试类...
1. **创建测试类**:在Android Studio中,可以使用模板生成测试类,通常在与源代码相同的目录结构下,但位于`src/test/java`路径下。 2. **添加依赖**:在`build.gradle`文件中,添加JUnit和Android测试支持库的...
"Android test"这个主题涵盖了多种测试方法和技术,用于验证应用程序的功能、性能、稳定性和用户体验。这里我们将深入探讨Android测试的基础知识、重要性以及常用的测试类型。 首先,理解测试的重要性是至关重要的...
接下来,让我们看看如何在Kotlin中编写Scalatest测试。Scalatest提供了多个测试构造器,如`WordSpec`, `FunSpec`, `FlatSpec`等,它们各自有不同的语义风格。比如,`WordSpec`允许我们使用"when"、"should"这样的...
在“工具”标签的背景下,Android Studio内置了Android Test Orchestrator,这是一个用于管理并行测试的工具,它可以确保每个测试用例在一个干净的环境中运行,避免了测试间的相互干扰。此外,Mockito是一个流行的...
本文将深入探讨“android test”这一主题,分析如何有效地利用这些功能进行应用测试。 首先,我们来关注“拍照”这个标签。在Android系统中,拍照涉及到Camera API的使用。早期版本的Android系统采用Camera API1,...
每个包下可能有多个测试类,每个类针对应用的一个或多个组件进行测试。 【详细知识点】 1. **Android测试框架**:在Android开发中,常用的测试框架有JUnit、Espresso(UI测试)、Mockito(模拟对象测试)、...
在`src/test/java`下,我们可以创建与生产代码对应的测试包结构,并编写测试类。 以下是一个简单的单元测试示例: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; public class ...
在Android开发领域,Test Driven Development(TDD)是一种被广泛应用的编程实践,它强调先编写测试用例,再编写满足这些测试的代码。在这个"Android Test Driven Development Tutorials"资源包中,包含了PDF、ePub...
在GPS测试应用中,`src`目录下的类将实现获取和处理GPS定位数据的功能,`res`中的布局文件则可能包含了显示GPS坐标和其他相关信息的用户界面。 通过对这些文件的分析,我们可以了解到Android Gps Test源码是如何...
然后,你可以创建一个新的UI测试类,继承自`androidx.test.ext.junit.runners.AndroidJUnit4`。例如,要测试一个登录界面,你可以模拟点击用户名和密码输入框,输入文本,然后点击登录按钮,并检查结果视图是否正确...