WEB开发网
开发学院手机开发Symbian 开发 在 Symbian S60 平台进行单元测试 阅读

在 Symbian S60 平台进行单元测试

 2010-03-16 17:18:00 来源:WEB开发网   
核心提示:1 PRJ_MMPFILES2 makefile ExtraTestBuildTasks.bldmake3 SymbianOSUnit.mmp以上步骤完成以后,要测试的范例路径如图1所示,在 Symbian S60 平台进行单元测试(4),图1:工程目录结构图现在创建测试工程并将其运行在模拟器上,首先,方法是将函数返回

1 PRJ_MMPFILES

2 makefile ExtraTestBuildTasks.bldmake

3 SymbianOSUnit.mmp

以上步骤完成以后,要测试的范例路径如图1所示。

图1:工程目录结构图

现在创建测试工程并将其运行在模拟器上。首先,迅速打开命令行将其路径转到 C: empMapEx est. 然后用bldmake bldfiles命令创建编译文件。其次,用abld makefile指令创建makefiles文件。这是非常重要的过程因为它生成ExtraTestBuildTasks.bldmake指令将生成测试工程的框架。最后,用命令行abld build winscw udeb在模拟器上编译测试工程。这个用来运行测试工程的SymbianOSUnit应用,会出现在菜单里。选择菜单里的“运行所有套件”选项并找到如何执行测试(如图2)。

图2:使用 SymbianOSUnit进行单元测试

在上述例子中,所有的测试都是无误运行的。这是我们所期望的,因为这个测试实例是空函数实现的。

● 排除依赖关系

开发者现在应该开始测试实驱动类。首先,包括一个对源文件 (TestSource.cpp)测试目标的定义(CMapExampleSmsEngine) #include "cmapexamplesmsengine.h"

然后从.mmp文件中用非注释行的方式把测试目标函数加到工程中。

SOURCE CMapExampleSMSEngine.cpp

这里有一个非常难的部分:在执行的过程中测试性是不被考虑的,所以可能会有联缠,私有区域等困难,使得单元测试具有挑战性。在我们的实例中,会使用信息类>RSendAsMessage和RSendAs,但是模拟结果是很困难的。

解决问题的办法是把默认的库函数替换为开发者自己的。当不能和现有的库相连,但使用开发者所需要的库函数就可实现时,该方法可被使用。当我们缺失一个.mmp文件中的库函数时,编译器将会编译源代码,但链接部分将无法生成最终代码,报错如下:

Undefined symbol: 'void RSendAsMessage::CreateL(class RSendAs &, class TUid) (?CreateL@RSendAsMessage@@QAEXAAVRSendAs@@VTUid@@@Z)'

开发者的任务是使用一些函数实现这种方法,以达到测试需求。此时首先可选择的是简单的空函数,方法是将函数返回值设为NULL或者其他硬编码默认值。注意此方法金用于目标测试工程需要使用函数时(例如,并不需要使用29种所有的RSendAsMessage方法)。空函数法类似于以下几行实现链接的代码:

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Symbian 平台 进行

编辑录入:coldstar [复制链接] [打 印]
赞助商链接