Android----单元测试 (1)
一、Android的Junit测试
一般的JUnit我们都用过,而针对Android的JUnit也是类似于这种,显示的结果也是绿条和红条。
单元测试整体框架如下:
我们这里只介绍其中一个类:AndroidTestCase;
二、AndroidTestCase
程序描述:新建一个Android项目:Activity,添加一个EditText,其他不做任何事;
[java] view plain copy print ?- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.widget.EditText;
- publicclassMainActivityextendsActivity{
- privateEditTextet1;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- et1=(EditText)this.findViewById(R.id.et1);
- if(savedInstanceState!=null){
- et1.setText(savedInstanceState.getString("name"));
- }
- }
- publicintadd(inta,intb){
- returna+b;
- }
- }
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 ?- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <uses-libraryandroid:name="android.test.runner"/>//添加此行代码
- </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 ?- <application/>
- <instrumentation
- android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="org.xiazdong"/>//要测试的Activity所在包
<application/> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="org.xiazdong" /> //要测试的Activity所在包
步骤2:添加单元测试类
- importorg.xiazdong.MainActivity;
- importandroid.content.Context;
- importandroid.test.AndroidTestCase;
- importandroid.widget.EditText;
- publicclassMainActivityTestextendsAndroidTestCase{
- privateMainActivitymainActivity;
- privateContextcontext;
- @Override
- protectedvoidsetUp()throwsException{
- super.setUp();
- mainActivity=newMainActivity();//直接创建Activity实例
- context=this.getContext();//获得上下文
- }
- //测试add方法
- publicvoidtestAdd(){
- MainActivityma=newMainActivity();
- inta=ma.add(2,3);
- assertEquals(5,a);
- }
- }
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;
更多相关文章
- tcping测试服务器TCP端口
- Android(安卓)Widget ListView添加点击事件
- Android(安卓)ViewPager与radiogroup实现关联
- android 如何连真机测试
- android 单元测试出现错误及改正
- 使用traceview进行Android性能测试
- 【Android(安卓)Developers Training】 94. 创建一个空内容提供
- Android(安卓)根据已装应用的签名限制其他应用安装
- Android(安卓)UI 测试框架Espresso详解