我的上一篇博客http://www.cnblogs.com/wushaobo/p/4396308.html,开发了一个简单安卓app闰年测试。在这里,使用junit框架对这个app进行简单的单元测试。
为了方便进行测试,我将程序做了简单的修改,将toast提示改为页面文本,添加回车事件响应闰年判断。效果如下:
1.测试准备
在实际开发中,开发android软件的过程需要不断地进行测试。而使用Junit测试框架,则是正规Android开发的必用技术。
测试使用eclipse + ADT +android SDK做为开发环境
1).首先新建一个android测试项目,我将其命名为test
指定需要测试的项目
2).配置框架
打开test项目下的AndroidManifest.xml清单文件,将以下红色框中的代码复制粘贴到闰年测试项目的AndroidManifest.xml清单文件中,拷贝的节点一定要准确。
3).创建测试用例
在test项目下新建一个包
在这个包里新建一个junit测试用例
使这个类继承android.test.ActivityInstrumentationTestCase2类
4).创建构造函数
1 public class Testleap extends ActivityInstrumentationTestCase2<MainActivity> { 2 3 public Testleap(String name) { 4 super(MainActivity.class); 5 } 6 }
右键选择源代码->覆盖实现方法,选择setUp()和tearDown()方法。在类被创建的时候做一些初始化全局变量的操作。
5).编写测试函数
最终代码如下:
1 package com.leap.leapyear.test; 2 3 import com.leap.leapyear.MainActivity; 4 import com.leap.leapyear.R; 5 6 import android.test.ActivityInstrumentationTestCase2; 7 import android.view.KeyEvent; 8 import android.widget.TextView; 9 10 public class Testleap extends ActivityInstrumentationTestCase2<MainActivity> { 11 12 private TextView result; 13 14 public Testleap(String name) { 15 super(MainActivity.class); 16 } 17 18 @Override 19 protected void setUp() throws Exception { 20 super.setUp(); 21 MainActivity mainActivity = getActivity(); 22 result =(TextView)mainActivity.findViewById(R.id.result); 23 } 24 25 @Override 26 protected void tearDown() throws Exception { 27 super.tearDown(); 28 } 29 30 public void Testleapyear() throws Exception{ 31 sendKeys(KeyEvent.KEYCODE_2); 32 sendKeys(KeyEvent.KEYCODE_0); 33 sendKeys(KeyEvent.KEYCODE_1); 34 sendKeys(KeyEvent.KEYCODE_2); 35 sendKeys(KeyEvent.KEYCODE_ENTER); 36 String leapResult = result.getText().toString(); 37 assertEquals("是闰年",leapResult); 38 } 39 40 }
6).运行单元测试
右键调试函数运行
7).测试结果
在junit控制台显示绿条则证明测试通过。
修改测试用例为非法输入则测试不通过