`
nick714
  • 浏览: 25996 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Android单元测试之Activity测试

 
阅读更多

       Activity测试类有三个,包含主要的ActivityInstrumentationTestCase2ActivityUnitTestCase,当然,如果测试单个Activity,还可以用到SingleLaunchActivityTestCase

       1.ActivityInstrumentationTestCase2

         运行测试多个应用下的多个Activity,可以发送虚拟Intent,不允许使用虚拟化的Contexts或者Application.如果要向当前测试的Activity发送Intent的话,一定要在getActivity()方法之前就发送,在getActivity()方法之后发送是不起作用的。

        怎么建立测试项目就不多讲了,现在看看测试该Activity的代码:

 

public class AutoPlayActivityTest extends ActivityInstrumentationTestCase2<AutoPlayActivity> {

 

ImageView imageView;

AutoPlayActivity mActivity;

String SDCARD = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator;

String[] uuuu;

public AutoPlayActivityTest() {

super("lichunan.lcn.activity.AutoPlayActivity",AutoPlayActivity.class);

}

 

@Override

protected void setUp() throws Exception {

// TODO Auto-generated method stub

super.setUp();

uuuu = new String[]{SDCARD+"080806012774292.jpg",SDCARD+"20110801_121726.jpg"};

Intent intent = new Intent();

intent.putExtra("allPhotoPath", uuuu);

//mActivity.setIntent(intent);

setActivityIntent(intent);

mActivity = this.getActivity();

imageView = (ImageView)mActivity.findViewById(R.id.imageView);

}

 

@Override

protected void tearDown() throws Exception {

super.tearDown();

}

public void testAutoPlay(){

}

}

             说明一下,setUp() 是在执行所有方法之前先执行,tearDown()在执行所有方法之后再执行。

       其实 testAutoPlay()也不是没用,因为只有setUp和tearDown方法的话,没有测试的方法,好像会报send 1,receive 0的错误,具体什么原因我也不知道,哪位大牛知道的,希望能够在后面留言!

        另外,要注意的是,测试程序里super("lichunan.lcn.activity.AutoPlayActivity",AutoPlayActivity.class)的第一个参数一定要对应Mainfest.xml文件中 <instrumentation android:targetPackage=“”>中的字段,也就是AutoPlayActivity.class对应的包。

 

分享到:
评论

相关推荐

    Android单元测试-对Activity的测试

    上一篇文章已经介绍了单元测试的作用和简单示例,如果不了解的读者可以先阅读上一篇[ Android单元测试-作用以及简单示例](http://blog.csdn.net/double2hao/article/details/77159380)。 这篇文章主要介绍常见的...

    Android单元测试与Volley单元测试

    Robolectric能够模拟Android系统的核心组件,如Activity、BroadcastReceiver等,使得测试可以直接操作这些组件并检查其行为。使用Robolectric,开发者可以编写更快速、更可靠的单元测试,因为它不需要启动真实设备或...

    Android单元测试初探——Instrumentation

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

    Android单元测试Demo

    2. **添加依赖**:在`build.gradle`文件中,添加JUnit和Android测试支持库的依赖,如: ``` testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' ...

    android 单元测试

    在Android环境中,我们通常会测试Activity、Service、BroadcastReceiver、ContentProvider等组件的方法。 JUnit是Java编程语言中最常用的单元测试框架,它也是Android单元测试的核心工具。在Android项目中,我们...

    Android-节省时间并在Android上清除您的单元测试

    在Android应用开发中,单元测试是确保代码质量、可维护性和稳定性的关键步骤。通过单元测试,开发者可以针对应用程序中的各个模块进行独立测试,确保它们按照预期工作,从而避免潜在的错误和缺陷。本文将深入探讨...

    Android单元测试框架搭建手册

    ### Android单元测试框架搭建手册 #### 一、前言 随着移动互联网的快速发展,Android应用的质量成为了用户体验的关键因素之一。为了提高应用的质量,确保代码的可靠性和稳定性,单元测试成为了必不可少的一部分。...

    Android单元测试框架Robolectric.zip

    Robolectric 是一款Android单元测试框架,示例代码: @RunWith(RobolectricTestRunner.class) public class MyActivityTest { @Test public void clickingButton_shouldChangeResultsViewText() throws ...

    Android 单元测试资料

    2. **Instrumentation测试**:这种类型的测试在真实设备或模拟器上运行,可以访问Android系统服务并与之交互,适合测试与系统紧密耦合的组件。 3. **Robolectric**:一个开源库,可以在没有实际设备的情况下模拟...

    Activity的单元测试

    2. **AndroidJUnitRunner** 和 **Instrumentation** 是Android测试架构的关键部分。AndroidJUnitRunner运行在设备或模拟器上,管理测试用例的执行,而Instrumentation提供了与设备或模拟器交互的能力。 3. **...

    Android unitTest 按键单元测试项目

    在Android应用开发中,单元测试是一项至关重要的任务,它能够帮助开发者确保代码的质量,提高软件的稳定性和可维护性。本项目聚焦于Android中的按键单元测试,特别是针对按钮(button)点击事件的测试。以下是对这个...

    Android的Activity周期测试

    测试Activity生命周期通常通过模拟不同的用户操作和系统行为来观察回调方法的执行情况。例如,启动新Activity、按下Home键、收到来电、设备旋转等场景。通过Logcat记录各个回调方法的执行顺序和次数,可以直观地了解...

    Android上的单元测试

    - **选择合适的基类**:根据具体测试需求选择合适的基类进行继承,例如使用`ActivityTestCase`来测试Activity的行为,使用`ActivityUnitTestCase`则更多关注于测试的独立性,减少与底层系统的耦合。 #### 四、...

    android单元测试

    例如,如果一个Activity依赖于某个Service,我们可以通过Mockito创建Service的mock对象,使Activity在测试时使用mock Service,这样就能专注于测试Activity本身的逻辑。 在Android单元测试中,我们还需要关注测试...

Global site tag (gtag.js) - Google Analytics