`

Android下使用JUnit

阅读更多

本文版权所有,欢迎转载,转载请注明来源: http://mdev.cc/dev

 

Andorid下使用Junit测试框架,是步入正规的Androdid开发的必经之路,在Junit中可以得到组件,可以模拟发送事件,检测程序处理的正确性,下面就开始我们的教程:

 

工具:
1、Android1.5 SDK
2、ADT 0.9
3、Eclipse 
 
需要的知识:
1、 Android开发的基础
2、Junit的基础
 
 
一、
首先建立工程:
目录:
 
选中的test source folder是测试类的包,包名随便,但是在配置 Manifest.xml要注意



二、配置\layout\main.xml文件,加入两个button组件,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <Button android:text="Button01" android:id="@+id/Button01"
  android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
 <Button android:text="Button02" android:id="@+id/Button02"
  android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
 三、被测试的Activity代码
package cc.androidos.activity;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
public class NewActivity extends Activity {
    /** Called when the activity is first created. */ 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public int add(int a , int b){
     return a+b;
    }
}
 四、测试NewActivity代码,这里要继承ActivityInstrumentationTestCase2,ActivityInstrumentationTestCase2是TestCase的子类

package cc.andoridos.activity.test;
import cc.androidos.activity.NewActivity;
import cc.androidos.activity.R;
import android.test.ActivityInstrumentationTestCase2;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.Button;
public class TestNewActivity extends
  ActivityInstrumentationTestCase2<NewActivity> {
 private Button button1 = null;
 private Button button2 = null;
 private NewActivity newActivity = null;
 public TestNewActivity() {
  super("cc.androidos.activity", NewActivity.class);
  //This first parameter should the Activity package
  //if other , the junit give us the exception: unable resolve the activity
 }
 
 @Override
 protected void setUp() throws Exception {
  String tag = "setUp";
  Log.e(tag, "init all var....");
  newActivity = getActivity();
  button1 = (Button) newActivity.findViewById(R.id.Button01);
  button2 = (Button) newActivity.findViewById(R.id.Button02);
 }
 /**
  * Testing the button is focused or not
  */
 public  void testButtonFocus() {
  String tag = "testButtonFocus";
  Log.e(tag, "start the button focus...");
  assertTrue("Button1 is focused", button1.isFocused());
  Log.e(tag, "send the down key event...");
  sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
  assertTrue("Button2 is focused", button2.isFocused());
 }
 
 /**
  * Testing the add method in actvity
  */
 public void testAdd(){
  String tag ="testAdd";
  Log.e(tag, "Test the add method in NewActivity...");
  int i  = newActivity.add(2, 5);
  assertEquals(7, i);
 }

 
}
 
五、配置Manifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="cc.androidos.activity" android:versionCode="1"
 android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name">
  <activity android:name=".NewActivity" android:label="@string/app_name">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>
  <activity android:name=".NewActivity2" android:label="@string/app_name">
  </activity>
  <uses-library android:name="android.test.runner" />
  <!-- Loading test library -->
 </application>
 <uses-sdk android:minSdkVersion="3" />
 
<!--这个是关键,android:targetPackage="cc.androidos.activity"要测试的包,android:name="android.test.InstrumentationTestRunner" 用于跑TestCase的类-->
 <instrumentation android:targetPackage="cc.androidos.activity"
  android:label="Test New Activty" android:name="android.test.InstrumentationTestRunner"></instrumentation>
</manifest> 
 
 
六、运行模拟器和项目
 
 七、在TestCase类中点击右键:


 

八、运行结果




九、不使用Eclipse,控制台的命令:
E:\android\android-sdk-windows-1.5_pre\tools>adb shell am instrument -w cc.andro
idos.activity/android.test.InstrumentationTestRunner
如果你配置了Android环境变量,直接使用:
adb shell am instrument -w cc.androidos.activity/android.test.InstrumentationTestRunner
语法:adb shell am instrument -w <被测试的类的包名>/android.test.InstrumentationTestRunner
参数参考帮助文档

 
  • 大小: 44.1 KB
  • 大小: 81.4 KB
  • 大小: 153.1 KB
分享到:
评论
2 楼 andyzhchy 2010-09-28  
其实之前看到过CTS,Google的CTS就是一些单元测试,(*^__^*) 嘻嘻……
1 楼 andyzhchy 2010-09-28  
学习啦,谢谢lz,之前还没研究到这一块,(*^__^*) 嘻嘻……

相关推荐

    Android下使用JUnitTest用例

    然后,在这个目录下创建一个新的Java类,继承自`androidx.test.ext.junit.runners.AndroidJUnit4`。这样,你的测试类就可以使用JUnit4的注解了。 4. **编写测试用例** 使用JUnit的`@Test`注解标记测试方法,这些...

    android-junit5,使用junit 5进行android测试。.zip

    `AndroidJUnit4.class`则告诉JUnit4使用Android测试扩展。 为了运行这些测试,需要在`build.gradle`中配置测试任务。`android-junit5`插件提供了一个`test`任务,可以覆盖默认的`testDebugUnitTest`任务: ```...

    Android Studio中Junit调试

    接下来,我们将详细介绍如何在Android Studio中使用JUnit来进行调试。 #### 四、创建JUnit测试用例 1. **新建项目**: - 打开Android Studio,创建一个新的Android项目。 2. **添加JUnit依赖**: - 在项目的`...

    android studio junit测试 demo

    这个类通常位于`app/src/test/java`目录下,并且需要继承自`androidx.test.ext.junit.runners.AndroidJUnit4`,这样就可以在Android环境中运行JUnit测试。例如,如果你要测试名为`MainActivity`的Activity,你可以...

    android-junit5:使用Android的JUnit 5进行测试

    一个Gradle插件,允许使用Android Gradle Plugin 3.5.0或更高版本在Android环境中执行测试。 如何? 该插件为项目的每个构建变体配置单元测试任务,以在JUnit Platform上运行。 此外,它附加到android.testOptions...

    android-junit-report

    在Android开发中,测试是不可或缺的一环,而JUnit作为Java领域广泛使用的单元测试框架,也在Android平台上得到了应用。"android-junit-report"项目便是针对Android环境优化的JUnit测试报告生成工具,旨在帮助开发者...

    对JUnit的一点简单讲解包括一点简单的Android JUnit的讲解

    AndroidJUnit4引入了`@RunWith(AndroidJUnit4.class)`,这使得我们可以使用JUnit4的特性,同时利用Android的测试环境。例如,`@UiThreadTest`注解用于表示该测试必须在主线程运行,而`@SmallTest`, `@MediumTest`, ...

    android Junit单元测试

    在本文中,我们将学习如何在 Eclipse 中创建 Android JUnit 的单元测试工程,并在不同的条件下创建及运行自动测试用例。同时,我们还将学习如何测试 Android 中的 Activity 并识别程序中的错误。 首先,让我们来...

    android之Junit ActivityUnitTestCase 演示

    在`TestApp`中,我们可以使用`@RunWith(AndroidJUnit4.class)`注解,结合`@Test`注解的测试方法,以类的形式组织多个测试用例。 总的来说,`JUnit`和`ActivityUnitTestCase`的结合使用,使得我们能够有效地对...

    android Junit

    本篇将详细介绍Android中的JUnit使用及其相关知识点。 首先,JUnit是一个Java语言的单元测试框架,广泛应用于各种Java项目中。在Android平台上,我们通常使用JUnit4版本,它提供了更丰富的注解和更简洁的测试用例...

    android 结合Junit进行测试.

    接下来,我们可以创建测试类,继承自`AndroidJUnit4`,并编写测试用例。例如,如果我们要测试一个名为`MyClass`的类,可以这样写: ```java import org.junit.Before; import org.junit.Test; import org.junit....

    android-junit

    下面以一个简单的计算器类为例,展示如何在Android中使用JUnit编写测试用例。 **1. 源代码** ```java public class SampleCalculator { public int add(int augend, int addend) { return augend + addend; } ...

    android-junit单元测试(附代码)

    要进行Android的JUnit单元测试,我们需要创建一个测试类,该类继承自`AndroidJUnit4`类,这使得我们可以使用JUnit4的特性。例如: ```java import org.junit.runner.RunWith; import android.support.test.runner....

    android-junit-report-1.5.8.zip官网下的

    《Android JUnit Report 1.5.8:深入理解与应用》 在Android开发中,单元测试是一项不可或缺的任务,它确保代码的质量和可维护性。Android JUnit Report库,特别是版本1.5.8,是开发者进行自动化测试的重要工具。这...

    android cts介绍,及junit测试

    在Android开发中,JUnit结合了Android Testing Support Library,提供了一些专门为Android环境设计的测试工具,如`@UiThreadTest`用于在UI线程上运行的测试,`@SmallTest`, `@MediumTest`, `@LargeTest`用于标记不同...

    android之Junit 深入研究代码

    在Android中,我们通常创建一个名为`MyActivityTest`的测试类,该类继承自`AndroidJUnit4`,这样可以使用Android特有的上下文。例如: ```java import org.junit.Test; import androidx.test.ext.junit.runners....

    android JUnit demo

    此外,可能还会涉及到`ActivityInstrumentationTestCase2` 或 `AndroidJUnit4` 测试类,它们是Android测试库提供的测试基类,提供了启动和控制`Activity`的能力,这对于测试与`Spinner`交互的`Activity`是必要的。...

Global site tag (gtag.js) - Google Analytics