一、Android的Junit测试


一般的JUnit我们都用过,而针对Android的JUnit也是类似于这种,显示的结果也是绿条和红条。

单元测试整体框架如下:

我们这里只介绍其中一个类:AndroidTestCase;



二、AndroidTestCase


程序描述:新建一个Android项目:Activity,添加一个EditText,其他不做任何事;

[java] view plain copy print ?
  1. importandroid.app.Activity;
  2. importandroid.os.Bundle;
  3. importandroid.widget.EditText;
  4. publicclassMainActivityextendsActivity{
  5. privateEditTextet1;
  6. @Override
  7. publicvoidonCreate(BundlesavedInstanceState){
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. et1=(EditText)this.findViewById(R.id.et1);
  11. if(savedInstanceState!=null){
  12. et1.setText(savedInstanceState.getString("name"));
  13. }
  14. }
  15. publicintadd(inta,intb){
  16. returna+b;
  17. }
  18. }

import android.app.Activity; import android.os.Bundle; import android.widget.EditText; public class MainActivity extends Activity { private EditText et1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); et1 = (EditText)this.findViewById(R.id.et1); if(savedInstanceState!=null){ et1.setText(savedInstanceState.getString("name")); } } public int add(int a,int b){ return a+b; } }

如果我们要进行单元测试通常有两种方法:

(1)直接在项目工程下创建单元测试

(2)创建一个Android Test Project

1.直接创建单元测试类


步骤1:在AndroidManifest.xml中添加如下:

[html] view plain copy print ?
  1. <application
  2. android:icon="@drawable/ic_launcher"
  3. android:label="@string/app_name">
  4. <uses-libraryandroid:name="android.test.runner"/>//添加此行代码
  5. </application>

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <uses-library android:name="android.test.runner" /> //添加此行代码 </application>

[html] view plain copy print ?
  1. <application/>
  2. <instrumentation
  3. android:name="android.test.InstrumentationTestRunner"
  4. android:targetPackage="org.xiazdong"/>//要测试的Activity所在包

<application/> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="org.xiazdong" /> //要测试的Activity所在包



步骤2:添加单元测试类

[java] view plain copy print ?
  1. importorg.xiazdong.MainActivity;
  2. importandroid.content.Context;
  3. importandroid.test.AndroidTestCase;
  4. importandroid.widget.EditText;
  5. publicclassMainActivityTestextendsAndroidTestCase{
  6. privateMainActivitymainActivity;
  7. privateContextcontext;
  8. @Override
  9. protectedvoidsetUp()throwsException{
  10. super.setUp();
  11. mainActivity=newMainActivity();//直接创建Activity实例
  12. context=this.getContext();//获得上下文
  13. }
  14. //测试add方法
  15. publicvoidtestAdd(){
  16. MainActivityma=newMainActivity();
  17. inta=ma.add(2,3);
  18. assertEquals(5,a);
  19. }
  20. }

import org.xiazdong.MainActivity; import android.content.Context; import android.test.AndroidTestCase; import android.widget.EditText; public class MainActivityTest extends AndroidTestCase{ private MainActivity mainActivity; private Context context; @Override protected void setUp() throws Exception { super.setUp(); mainActivity = new MainActivity(); //直接创建Activity实例 context = this.getContext();//获得上下文 } //测试add方法 public void testAdd(){ MainActivity ma = new MainActivity(); int a = ma.add(2, 3); assertEquals(5, a); } }



测试即可;

2.创建单元测试工程



这样的好处是不用再配置AndroidManifest.xml,直接创建测试类即可;

注意:此类的单元测试因为只涉及业务逻辑,因此不能使用findViewById之类的和视图有关的函数;这里也只是测试了一个业务函数:add;

更多相关文章

  1. tcping测试服务器TCP端口
  2. Android(安卓)Widget ListView添加点击事件
  3. Android(安卓)ViewPager与radiogroup实现关联
  4. android 如何连真机测试
  5. android 单元测试出现错误及改正
  6. 使用traceview进行Android性能测试
  7. 【Android(安卓)Developers Training】 94. 创建一个空内容提供
  8. Android(安卓)根据已装应用的签名限制其他应用安装
  9. Android(安卓)UI 测试框架Espresso详解

随机推荐

  1. Java开发水吧点饮品系统(顶层父类对象做接
  2. java代码获知该方法被哪个类、哪个方法、
  3. 小女子想转学java,各位朋友能否给点建议
  4. java中的事件监听问题,如何将菜单项与组合
  5. java 调用 shell 得到返回值(二)
  6. android游戏开发学习 博客分类: android
  7. Java开发微信公众号(二)---开启开发者模式,
  8. linux环境下成功编译GDAL为JAVA库
  9. java项目中Classpath路径到底指的是哪里?
  10. java-信息安全(三)-PBE加密算法