`
lxfgrace
  • 浏览: 74363 次
  • 性别: Icon_minigender_2
  • 来自: 重庆
社区版块
存档分类
最新评论

Android 使用Instrumentation进行界面的单元测试

 
阅读更多
如果我们要对一个Activity界面上的一个按钮的点击事件进行单元测试,则可使用ActivityInstrumentationTestCase2类来进行测试。
首先我们定义一个测试类:
public class TestOneActivity extends
         ActivityInstrumentationTestCase2<OneActivity> {
     public TestOneActivity() {
         super("com.hc.bai", OneActivity.class);
     }
}
其中,OneActivity代表被测试的Activity,TestOneActivity()为该测试类的构造函数,super有两个参数,第一个是包名,我这为“com.hc.bai”。如果在你要测试的Activity的onCreate函数中,需要接受来自启动该Activity的页面传来的参数,可以在测试类中摸你传值,在这我们可以重写测试类的getActivity()函数,如下:
@Override
     public OneActivity getActivity() {
         OneActivity a;
         Intent i = new Intent();
         Bundle b = new Bundle();
         b.putString("name", "sss");
         b.putString("id", "sss");
         // a = launchActivityWithIntent(targetPackage, OneActivity.class,
         // i);
         a = launchActivity(targetPackage, OneActivity.class, b);
         setActivity(a);
         System.out.println("getActivity--------------------------");
         return a;
     }

通过在getActivity中执行launchActivityWithIntent或launchActivity,我们就可以将参数传递给被测试的Activity。在测试中,我们要对该界面上的一个Button进行测试,则我们还需要在Setup中定义该Button
private Button bt;
OneActivity one;
protected void setUp() throws Exception {
         one = getActivity();
         bt = (Button) one.findViewById(R.id.bt_test);
         System.out.println("setup********************");
}
之后我们就可以完成我们的测试函数:
public void testOne() {
one.runOnUiThread(new Runnable() {
             public void run() {
                 //Looper.getMainLooper();
                 bt.performClick();
             }
         });
        
         getInstrumentation().waitForIdleSync();
          。。。
}
可以看到,我们需要在runOnUiThread中调用bt.performClick()事件,如果直接调用该事件,则程序会出现异常,getInstrumentation().waitForIdleSync()这一句是同步等待应用程序被闲置,之后,我们责可以写类似于assertEquals、assertTrue等函数。
}
分享到:
评论

相关推荐

    Android单元测试初探——Instrumentation

    学习Android有一段时间了,虽然前段时间对软件测试有了一些了解,不过接触android的单元测试却是头一次。这几天在物流大赛上也用了不少时间,所以对于android的单元测试没有太深入的研究,所以先写个基本入门吧!...

    Android单元测试的小例子

    5. **Instrumentation Tests**:虽然题目主要提到的是单元测试,但值得一提的是,Android也支持集成测试或instrumentation测试,它们可以访问Android系统服务并测试UI。这些测试通常在真实设备或模拟器上运行,比...

    android 单元测试

    单元测试是对软件中的最小可测试单元进行检查和验证,如函数、方法或类。它的目标是确保代码的每一个部分都能正常工作,并且在修改后不会破坏现有的功能。在Android环境中,我们通常会测试Activity、Service、...

    Android Studio中进行单元测

    单元测试是对软件中的最小可测试单元进行检查和验证,如函数、方法或对象。其目的是确保每个组件都能独立地按预期工作,以便于早期发现和修复问题。 在Android Studio中,我们可以使用JUnit4框架进行单元测试,它是...

    Android上的单元测试

    在单元测试场景下,Instrumentation能够通过命令行启动一组测试,并以命令行形式返回测试结果,从而避免了为测试编写专门用户界面的需求。 ##### 4.2 使用Instrumentation进行测试 - **测试流程**:首先,定义一...

    Android 单元测试资料

    首先,Android单元测试通常使用JUnit框架进行,这是一个广泛应用于Java平台的轻量级测试框架。在Android环境中,JUnit与Android Testing Support Library结合使用,提供对Android组件的测试支持,如Activity、...

    Android添加单元测试的方法与步骤

    使用JUnit进行Android单元测试时,需要注意,因为Android SDK提供的JUnit版本可能不包含完整的实现,所以可能需要在运行配置中指定JRE,并添加JUnit库。如果在Eclipse中,可以通过`Run Configurations`来调整`...

    Android单元测试源码.zip

    8. Instrumentation测试:与纯Java单元测试不同,Android的单元测试通常被称为Instrumentation测试,因为它们需要在Android环境中运行,并由一个称为Instrumentation的进程控制。 9. Robolectric:对于不涉及UI的...

    android 界面开发测试

    本篇主要将深入探讨Android界面开发的相关知识点,包括布局管理器、控件使用、自定义视图、动画效果、适配策略以及测试方法。 首先,Android界面的基础是布局(Layout)。Android提供了多种布局管理器,如线性布局...

    android单元测试和UI测试示例代码

    Espresso则是Android平台上的一个强大的UI测试库,它允许开发者编写直观且同步的用户界面测试。Espresso通过观察并响应UI事件流,确保应用在特定的用户交互后产生正确的结果。例如,你可以使用Espresso的onView()...

    Android程序测试(1)

    1. **单元测试(Unit Tests)**:针对代码中的最小可测试单元进行,例如单个方法或类。通常使用JUnit框架,并可以通过Mockito等工具模拟依赖关系,确保测试的隔离性。 2. **仪器测试(Instrumentation Tests)**:...

    androidStudio测试代码

    总之,Android Studio为Android应用的测试提供了全方位的支持,包括单元测试、UI测试、Mockito集成、Instrumentation测试和持续集成等。熟练掌握这些测试技术,将有助于提升代码质量和应用稳定性。

    详解Android单元测试方法与步骤

    在单元测试方法中添加实现,展开test/项目包名下单元测试类,选择要测试的方法,点右键,选择Run As-&gt;Android JUnit Test,就会打开单元测试结果界面。如果该方法无错误,则结果会显示绿色状态条。 Android单元...

    Activity的单元测试

    AndroidX Test提供了一套全面的测试支持,包括 Espresso用于UI测试,Robolectric用于模拟Android环境进行单元测试。 1. **Mockito** 是一个流行的Java mocking框架,可以模拟Activity的依赖,使我们能在测试中控制...

    Android移动应用测试.pdf

    通过ASE,可以便捷地调用Android API,进行自动化测试和简化任务界面,特别适合进行功能测试和交互式测试。 5. **Monkey工具**:Monkey是压力测试工具,它向系统发送随机的用户事件流,如按键、触摸屏输入,用于...

    安卓UiAutomator/UiDevice/Instrumentation官方测试范例

    通常,Instrumentation用于编写单元测试和功能测试,可以配合JUnit等测试库使用。在`UiAutomator-BasicSample`中,虽然主要展示的是UiAutomator的用法,但理解Instrumentation对于完整测试方案的构建至关重要。 在`...

Global site tag (gtag.js) - Google Analytics