首页 > 代码库 > CasperJS实践笔记(2)

CasperJS实践笔记(2)

代码本来写在一个JS文件里面,执行方式如下:

casperjs test xxx.js

可是代码超过1500行后,只有我自己看得明白,必须拆分(独立文件&逻辑复用)!

拆分后怎么执行呢?如下:

casperjs test --includes=1.js,2.js,3,js,4.js  testcase_code1.js --xunit=tesecase01_result.xml

文件1.js,2.js,3.js,4.js就是拆分出去的实现代码,testcase_code1.js可以当作是测试用例的执行步骤代码。

 

目前我的测试步骤部分现状是链式调用:

casper.test.begin("xxx", function(){    casper.start("http://xx.xx.com");    casper.then(fun_a).then(fun_b).then(fun_c);    casper.run(function(){    //    ...    })})

 

方法fun_a、fun_b、fun_c的实现都在拆分出去的那些文件。

 

includes包括了一长串文件列表,容易错误;这里有优化的空间,可以从CasperJS的run.js入手增加定制逻辑(根据自己项目的需要,不过我还没有时间去搞这个)

 

附加几句废话:

fun_a这些方法如果放在casper.then里面调用,只能是一个实现形式不能是执行形式;

比如casper.then(fun_a)正确但是casper.then(fun_a(str1, str2))肯定错误!

怎么办呢?不能带参数肯定不方便,其实可以在fun_a实现时搞一个闭包返回function即可。

 

tips:有些方法的实现是闭包,有些方法不是闭包,有点乱。

 

CasperJS实践笔记(2)