• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

对 Ajax 应用程序进行单元测试

发布: 2008-4-03 17:20 | 作者: Andrew Glover | 来源: IBM | 查看: 76次 | 进入领测软件测试网论坛讨论

领测软件测试网

m-U ]'i [ 软件测试技术门户A!PQ,s8]M I-?2o V3N

我已经得到一个模块名,可以开始定义测试用例了,如清单 5 所示:

r sk+l:BP;@:|FA软件测试技术门户OR7} i6h xy^L8d
清单 5. 您必须实现 getModuleName 方法并提供一个有效的名字软件测试技术门户2P9R/WX@5~f
                import com.google.gwt.junit.client.GWTTestCase;import com.google.gwt.user.client.Timer;public class WordModuleTest extends GWTTestCase { public String getModuleName() {   return "com.acme.gwt.WordModule"; }}
软件测试技术门户Ml.D)bL F u
软件测试技术门户b,C0} u&w.d0nQ

到目前为止一切良好,但是我还没有执行任何测试!由于我的 Ajax 应用程序使用 AsyncCallback 对象,在通过测试用例调用 getDefinition() 方法时, 我必须强迫 JUnit 延迟运行;否则测试将由于没有任何响应而失败。这就要用到 GWT 的 Timer 类。Timer 使我能够重写 getDefinition()run 方法,在 Timer 内完成测试用例逻辑。(测试用例以独立线程运行,有效地阻塞 JUnit 完成整个测试用例)。

E vf;p` G }HcWRs 软件测试技术门户5q2lA6O0LI#B

以我的测试为例,我将首先调用 getDefinition() 方法,然后提供一个 Timerrun() 方法的实现。run() 方法得到输出 Label 实例的文本并验证是否是正确定义。定义了 Timer 实例后,我就需要确定其何时运行,同时强制 JUnit 挂起直至 Timer 实例完成。也许听起来有点复杂,不必担心,因为实践起来非常简易。实际上,清单 6 展示了整个过程:软件测试技术门户 AZR