【技术干货】测试Angular项目的正确姿势
满世界都在整蛊开玩笑!
我们就是要正正经经讲技术!
有技术就是这么傲娇!这么任性!
我说明天放假!你信吗!连放三天你信吗!
爱!信!不!信!
以下正文
(翩
bao
翩
hu
美
hao
少
ni
年
de
来
yan
袭
jing
)
本文作者:上海驻云开发实施工程师
(实
shi
力
li
网
wu
红
wang
)
方!舟!
在Web自动化测试方面,Selenium得到了广泛的应用,Splinter基于Selenium封装了更上层的API,用来方便测试人员编写用例,但我们使用Splinter测试我们的Web应用时发生了一些问题。
以上是一个简单的登录测试用例,看上去没有任何问题,但是最后的assert永远是失败的,因为我们使用了Angular,整个网站是全异步的,在执行那条assert的时候登录接口还未返回,而页面并没有进行重新加载,Splinter不会等待便会直接进行assert。
最简单直接的解决方法当然是在assert之前sleep一段时间,这个时间可以根据我们应用的实际响应速度进行调整,例如500ms,但是作为一个有强迫症的程序员,如此dirty的方法当然是不能接受的。
于是我跟我们公司的前端工程师讨论了一下(就是题图里面右边那个吐舌头的绅(hen)士(tai),对,我就是旁边那个福禄娃),给我们程序的rootScope设定一个counter,然后给rootScope一个interval,interval执行的内容是当counter为0的时候给body标签加一个pageReady的class,不为0就去掉,将我们封装过的发送http请求代码内发出时将counter加1,请求完成时-1。
JavaScript相关示例代码如下:
收起
驻云科技
2016-04-01 16:29:47
7668
0
2
条回答
写回答
取消
提交回答
-
上海驻云信息科技有限公司成立于2013年,是一家领先的企业云计算架构咨询、实施、管理及运维技术服务提供商,致力于为企业客户提供卓越的云计算整体解决方案。
2016-04-05 15:26:02
-
作为一个运维,伪PHP开发者,伪前端开发者.目前依然不会Angular,.正在自学React...
2016-04-02 06:33:50