之前我介绍过doh用于UI单元测试,这篇文章介绍如何使用doh robot作界面自动化测试。
按照之前的介绍,读者会发现要使用doh robot必须作如下两件事情
1)编写测试页面,在页面中写入doh的测试代码
2)上面的测试所有的页面都是停留在当前页面,没有发生页面提交的动作
那么能不能在利用doh robot的界面动作模拟来测试一个应用呢?答案是肯定的
doh robot停工如下两个API来实现界面的自动化测试
第一个API用于将应用中的连接加入到测试页面,请看下面的代码
通过上面的代码,可以看出通过doh robot.initRobot,可以将外部的页面引入doh测试框架。
如果我们观察一下测试页,可以发现其实现的时候,是用一个IFRANE将页面框起来。
虽然有了IFRAME, dojo.doc指向的是你页面的document,dojo.byId()可直接根据你页面元素的Id获得页面中的控件,如果你的项目是dojo项目,可以使用dijit.byId获得widget对象。不过document,以及window对象指向的不是应用中页面,而是测试代码所在页面。
waitForPageToLoad的样例例代码如下,也比较容易让人明白
最后说一下doh测试结果获得的接口
首先你的测试要纳入整个doh的测试框架,包括要定义module.js以及测试套文件
再次可以修改runner.html中的代码,增加如下代码
doh对象存在如下属性,可以方便的获得测试结果
_testCount,_errorCount,_failureCount