软件自动化测试对于程序员来说能够确保软件开发的质量和效率。在Android编程中,Android集成了Junit单元测试框架,因此我们可以通过Junit来进行单元测试以及自动化测试。
1、引入Junit测试框架
在Manifest.xml配置文件中,我们需要引入Junit测试框架,因此需要在配置文件中添加如下代码:
在<application>标签中添加Junit测试库:
<uses-library android:name="android.test.runner" />
在<manifest>标签中添加以下代码:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label="Tests for My App"
android:targetPackage="com.jony.androidtestdemo" />
其中android:name="android.test.InstrumentationTestRunner"表示引入Android测试类
android:label="Tests for My App"该属性的具体内容根据实际情况自行定义
android:targetPackage="com.jony.androidtestdemo"该属性定义了需要测试的包名
至此,进行单元测试需要配置的工作就全部完成了。接下来简单写几个测试用的Activity——模拟实现用户登录过程
2、业务代码编写
MainActivity.java主要作用是实现Activity界面的跳转,通过点击界面上的Button按钮,跳转到用户登录界面;
LoginActivity.java主要作用是接收用户输入的用户名和密码;
HomeActivity.java用户登录成功界面。
以上三个界面的逻辑非常简单,本文重点在于讲解Android自动化测试以及性能优化,因此复杂的业务逻辑在此就不做过多介绍。
3、单元测试
在进行单元测试前,大家可能最关注的是:怎样获得Activity的实例?
的确,这个问题是我们必须要关心的。既然我们能想到的问题,想必Android的大牛们已经给我们提供了怎么获得Activity实例的方法了。
在Android单元测试中,我们只要继承ActivityInstrumentationTestCase2 类,在其构造函数中传入需要测试的Activity,就能通过getActivity()方法获得我们需要测试的Activity的实例,具体代码如下所示:
MainActivity.java的测试代码如下所示:
package com.jony.androidtestdemo.test;
import android.app.Instrumentation;
import android.test.ActivityInstrumentationTestCase2;
import android.test.UiThreadTest;
import android.test.suitebuilder.annotation.Suppress;
import android.util.Log;
import a