《Android 应用测试指南》——第2章,第2.7节调试用例

2.7 调试用例
当然,大家应该想到的是,你的测试用例代码也可能有问题。于是,通常都要调试用例,并且在LogCat中打印日志信息以便调试。还有一种更复杂的办法,就是启动调试工具来调试,有两种方式。

第一种方式更简单:利用Eclipse的便利性,不需要去记复杂的命令行选项。在最新版的AndroidADT插件中,有选项 Debug As | Andriod Junit Test。然后,你可以在测试用例中设置断点调试代码。

设置断点的方式就是在编译器中选中你要暂停的那行,然后利用菜单选项“执行|切换行”断点。这样你就可以轻松地将你测试代码切换成调试模式,等待调试器连接上就可以了。不用担心,这个特别简单。在你想要调试的测试用例中添加下面这小段代码。加在哪里并没有关系,因为调试器总是停留在你设置断点的地方。这种情况下,我们决定在构造器中添加Debug.waitForDebugger( ),如框2.10所示。

框2.10 测试用例中添加debug代码

public class MyFirstProjectTests extends TestCase {
  private static final boolean DEBUG = true;
  public MyFirstProjectTests(String name) {
    super(name);
    if ( DEBUG ) {
      Debug.waitForDebugger();
    }
  }

当你像往常一样执行测试用例,单击 Run As | Andriod Junit Test,你可能看到这样一个窗口,要求你转换视图,如图2.11所示。

图2.11 视图转换提示框

一旦切换之后,你将会看到一个标准的调试界面和会话。另外,如果你不能或者不想改变你测试的代码,那么可以设置断点之后,在am instrument命令后加上下面的项目,如表2.10中描述。

表2.10 打开debug选项

当你开始测试执行的时候,测试执行器会等待调试器连接上来。调试用例的命令行如框2.11所示。

框2.11 连接调试器命令

$ adb shell am instrument -w -e debug true com.example.aatg.
myfirstproject.test/android.test.InstrumentationTestRunner

等待调试进入到你断点这行时,你会看到下面这行,如框2.12所示。

框2.12 debug断点行时,看到的日志

com.example.aatg.myfirstproject.test.MyFirstProjectTests: 

当调试器连接上之后,这行才会消失,调试会话框才会出来。

时间: 2024-10-27 13:48:36

《Android 应用测试指南》——第2章,第2.7节调试用例的相关文章

《Android 应用测试指南》——第2章,第2.1节Junit

第2章 Android软件测试Android 应用测试指南既然我们已经了解了测试的基本概念及其重要性,那么现在是时候付诸于实践了. 在本章,我们将要讲述:在Android平台上测试:单元测试和Junit用法:创建一个Android测试工程:测试执行.我们会创建一个简单的Android主程序和与之对应的测试工程项目.主工程基本上是一个空项目,因为我们将重点看测试部分.以我个人经验,建议没有任何Android测试经验的同学好好学习下本章.如果你有过Android工程的经验,并且用过相关的测试技术,那

《Android 应用测试指南》——第1章,第1.4节测试的种类

1.4 测试的种类在开发过程中,任何时间段都可以参与测试,这取决于采用何种测试方案.但是,我们推荐测试工作在项目开发早期就介入,甚至可以在完整需求出来之后.刚开始开发的时候就开始做准备. 基于被测对象的不同,有好几种不同的测试方法.但是无论采用哪种测试方法,测试用例都包含执行条件和执行结果,执行结果返回True或者False来表示用例是否正确. 1.4.1 单元测试单元测试,指的是程序员在开发阶段写的测试用例.这种测试用例需要将被测对象独立隔离起来,也就是Mock掉外部关联对象.单元测试用例应用

《Android 应用测试指南》——导读

目 录前 言 第1章 测试入门第1章,第1.1节简史第1章,第1.2节软件Bug第1章,第1.3节为什么要测试.测什么.如何测.何时测试第1章,第1.4节测试的种类第1章,第1.5节Android测试框架第1章,第1.6节小结 第2章 Android软件测试 第2章,第2.1节Junit第2章,第2.2节创建一个Android主项目第2章,第2.3节创建一个Android测试项目第2章,第2.4节包浏览器第2章,第2.5节创建一个测试用例第2章,第2.6节测试执行第2章,第2.7节调试用例第2章

《Android 应用测试指南》——第2章,第2.6节测试执行

2.6 测试执行执行测试用例的方法有很多种,我们这里一个个地分析. 另外,我们在前面的章节中提到的注释,可以让测试用例按照组或者种类执行,这种方式要按实际需求来执行. 2.6.1 在Eclipse里执行所有的测试用例如果你采用了Elicpse作为开发环境,从Eclipse中执行测试用例可能是最简便的方式了.这种方式会执行包中所有的用例. 选择测试工程,然后单击 Run As -> Andriod Junit Test. 如果没有找到合适的设备或者模拟器,那么会自动启动一个.然后,测试用例开始执行

《Android 应用测试指南》——第1章,第1.6节小结

1.6 小结我们复习了软件测试中的主要概念以及Android测试中的特殊点.这些知识为我们开启探索软件测试的优点提供了必备条件. 本章主要讲述了以下内容. 我们回顾了早期Android测试以及当前可选的测试框架.我们简短分析了测试背后的4个W:为什么测试(Why),测什么(What),如何测(How),何时测(When).在如何测试上,我们后面会进行更加深入分析,假设你有固定参数输入,那么你将如何进行探索性测试呢?我们列举了项目中你需要的不同的.最通用的测试方法,描述了测试工具箱中的一些工具,并

《Android 应用测试指南》——第2章,第2.9节小结

2.9 小结我们复习了Android测试背后的主要技术和工具. 本章覆盖的内容如下.给Android样本工程创建相应的Android测试工程,作为第一个测试工程.创建相应测试工程的最佳方式,虽然你可能觉得没必要,但是事实证明如此.新建一个简单的测试类来测试工程中的行为.我们没有添加有用的测试用例,而是添加了一些例子来确认测试框架是可行的.我们还从Eclipse中执行了样例测试用例,从命令行也尝试了下,从而理解多种执行用例的方式.在这过程中,我们提到了行为管理器和am命令行的典型使用方式.分析了最

《Android 应用测试指南》——第1章,第1.3节为什么要测试、测什么、如何测、何时测试

1.3 为什么要测试.测什么.如何测.何时测试大家都清楚早期发现Bug会节约一大笔项目资源.减少软件维护费用.这就是为开发项目写测试用例的最好理由,不久你就会发现效率提高了. 另外,写测试用例的过程中,迫使你对需求了解更透彻,对要解决的问题了解更深入全面.如果你不了解被测对象,是不可能写好测试用例的.同样,写好测试用例可以清晰了解旧程序和第三方代码,让你能力倍增,更加有信心升级(旧程序.第三方代码)代码. 测试覆盖率越高,发现隐藏Bug的概率就越高.通过覆盖率分析,发现测试用例没有覆盖到的地方,

《Android 应用测试指南》——第2章,第2.5节创建一个测试用例

2.5 创建一个测试用例如上所述,我们将在Test项目中的src目录下面添加测试用例. 我们特意利用Junit测试来创建一个单元测试用例.Eclipse提供了操作向导来帮助大家(File | New | Junit Test Case). 我们打算选择主工程下面的活动Activity作为被测对象,尽管这个例子跟Activity实际内容无关. 创建测试用例时,我们有以下的值需要设置,如表2.2所示. 表2.2 新建用例填写的表格 严格说来,我们这里面有setUp().tearDown()和cons

《Android 应用测试指南》——第1章,第1.5节Android测试框架

1.5 Android测试框架Android提供了一个高级的测试框架,这个框架是JUnit的一个扩展,在标准JUnit的基础上插入了方便执行上述测试的插件.有的情况下,我们需要再装一些工具,而且集成这些工具大多情况下都很简单和直接. Android测试环境的关键特性包括以下这些:Android在JUnit框架基础上扩展了访问系统对象的方法:通过模拟器框架可以测试应用和控制器:提供了常用的.不同版本的系统对象的模拟器:提供了执行单个用例.用例集的工具,无须模拟器:提供测试用例.工程的管理工具,在A