`
iamzhaozheng
  • 浏览: 160684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中编写Activity单元测试程序提高开发效率

阅读更多

Android开发中,大型工程往往存在很多的Activity,这些Activity互相关联,复杂度较高。我们在开发时需要经常对界面以及交互等进行测试,每次测试运行程序后,往往需要一层一层的进入我们想看的Activity才能测试。这个过程中,可能需要输入用户名和密码,或者需要从Gallery中选择一幅图片等。因此,大型工程的每次测试都需要较长的时间,导致开发效率降低。针对这种情况,我们可以只打开某个Activity以便于进行测试,具体方法可以使用Android Test Project。

 

首先,要新建一个Test Project,Eclipse中选择File->New->Project->Android Test Project,点击Next,输入测试程序的名称,如PictureTest,点击Next。选择一个需要测试的Android工程(该工程必须是已经打开的Android Project),点击Next,然后选择测试工程的SDK版本Finish即可。这样就建立好了空的测试工程。

 

之后,需要新建一个单元测试类。对src中的空报名点右键,选择New->class,在Name中填写类名,如PictureActivityTest,Finish即可。

 

准备工作做完,可以开始编写针对Activity界面的测试类了,满足之前要求的Activity测试类需要继承ActivityInstrumentationTestCase2这个类,在<>中填入待测试的Activity类名,如PictureActivity。之后添加构造函数(自动生成即可)。


与所有单元测试程序一样,可以重写setUp()和tearDown()方法,以便于在测试前和测试后进行一些工作。重点是MediumTest,我们需要在MediumTest的时候打开这个Activity。很多时候打开Activity时,我们需要传入相应的Intent,比如显示图片的Activity,我们就需要通过Intent传入图片的Uri。编写好Intent之后,可以通过setActivityIntent(Intent intent)方法装入写好的Intent。之后就可以通过getActivity()方法打开Activity。为了防止测试程序在我们还没有看到效果的时候就运行结束,可以通过信号量CountDownLatch对象进行等待控制。这样就可以完整的对我们需要的Activity单独测试了。

 

 

public class PictureTestActivity extends
		ActivityInstrumentationTestCase2<PictureActivity> {

	private final static String TAG = "PictureTestActivity";

	public PictureTestActivity(Class<PictureActivity> activityClass) {
		super(activityClass);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected void setUp() throws Exception {
		super.setUp();
	}

	@MediumTest
	public void testProcess() throws Throwable {
		Log.d(TAG, "testProcess begin.");
		final CountDownLatch signal = new CountDownLatch(1);
		setActivityIntent(getNeededIntent());
		getActivity();
		signal.await();
	}

	@Override
	protected void tearDown() throws Exception {
		super.tearDown();
	}

	private Intent getNeededIntent() {
		Intent i = new Intent();
		i.setData(Uri.fromFile(new File("/mnt/sdcard/pics/skin1.jpg")));
		return i;
	}

}
 

 

3
0
分享到:
评论

相关推荐

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

    本文将深入探讨如何在Android平台上有效地进行单元测试,以节省时间并提高开发效率。 首先,了解Android单元测试的基础至关重要。Android提供了JUnit框架,这是一个广泛用于Java的单元测试库,可以用于编写和运行...

    CMDN CLUB # 17期:Android开发的单元测试

    对于Android开发而言,单元测试尤为重要,因为它可以帮助开发者确保代码质量,提高开发效率,以及降低后期维护成本。 ### 单元测试的重要性 单元测试在软件开发流程中扮演着关键角色,尤其是在敏捷开发和测试驱动...

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

    在Android开发中,单元测试和UI测试是两个关键的软件质量保证环节。单元测试主要针对应用程序的各个模块或组件...这将有助于你在实际项目中建立强大的测试基础,减少bug,提升用户体验,同时也能提高团队的开发效率。

    android单元测试

    在Android开发过程中,单元测试是确保代码质量与可...通过掌握这些技术,开发者可以构建出更加健壮、可靠的Android应用,并且随着持续集成和持续交付(CI/CD)的实践,单元测试也能成为提高开发效率和质量的有效手段。

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

    Android单元测试是一个非常重要的步骤,它可以帮助开发者快速检测和修复应用程序中的错误,提高代码质量,降低维护成本,提高开发效率。但是,单元测试也需要开发者额外的时间和精力,较高的技术水平和高昂的成本。

    android多个activity和一个service通信

    在Android应用开发中,Activity和Service是两个关键组件。Activity代表用户界面,而Service则用于在后台执行长时间运行的任务,不直接与用户交互。在实际项目中,常常需要多个Activity与一个Service进行通信,比如本...

    Android之Activity应用小例子

    在Android开发中,Activity是应用程序的基本构建块,它代表了用户可以与之交互的界面。Activity通常用于展示屏幕上的信息,接收用户输入,并处理相关的事件。在这个“Android之Activity应用小例子”中,我们将深入...

    Android学习之Activity弹窗

    在Android应用开发中,Activity是用户界面的基本单元,它负责展示屏幕上的交互内容。当我们谈论“Android学习之Activity弹窗”时,我们通常是指在Activity上显示的各种对话框或者浮层,例如AlertDialog、...

    在android中编写干净,简短和可测试代码的最佳实践.zip

    在Android开发中,编写干净、简短且可测试的代码是至关重要的,这不仅可以提高代码质量,提升软件的可维护性,还能使团队合作更加高效。以下是一些基于标题和描述所涉及的最佳实践: 1. **模块化设计**:将应用程序...

    Android小程序源代码集合

    熟悉并掌握这些库的使用,可以提高开发效率,使代码更加简洁高效。 三、小程序设计原则 1. 简洁性:小程序应尽可能保持轻量化,避免包含不必要的功能,以确保快速加载和流畅运行。 2. 用户友好:良好的用户界面设计...

    Android开发入门60个小案例+源代码

    最后,了解如何使用Android Studio进行调试和测试,包括使用Logcat查看日志、使用JUnit或Espresso进行单元测试和UI测试,这些都是提升开发效率和应用质量的关键技能。 总之,"Android开发入门60个小案例+源代码"是...

    诠释Android中Activity间的参数互传

    在Android应用开发中,Activity是用户界面的基本单元,它们之间经常需要进行数据交换,以便实现功能的联动或者流程的传递。本篇文章将深入探讨如何在Android的Activity之间传递参数,帮助开发者更好地理解和运用这一...

    Android应用开发详解教材源码--18个单元70多个实例源码

    16. **第三方库集成**:如RxJava、Retrofit、Butter Knife等,提高开发效率和代码质量。 17. **单元测试与集成测试**:学习如何编写测试代码,确保应用的稳定性和可靠性。 18. **Gradle构建系统**:理解Gradle的...

    Android代码-安卓测试项目

    本项目为一个典型的Android测试应用,主要目的是为了演示和实践在Android开发中如何进行各种类型的测试。通过Android Studio的Markdown navigator插件编辑,我们可以看到项目文档的清晰组织和注释,这对于理解和维护...

    Android-AOP实现无侵入提高开发效率工具

    在Android开发中,提高开发效率和代码质量是开发者们永恒追求的目标。面向切面编程(Aspect-Oriented Programming,简称AOP)作为一种编程范式,为实现这一目标提供了有效手段。本文将深入探讨如何利用AOP在Android...

Global site tag (gtag.js) - Google Analytics