ikon999原创:JsUnit测试之二
六、 组织测试函数
一般地,JsUnit会自动发现测试函数,就像JUnit会发现所有测试方法一样。不过,有些操作系统/浏览器不能合作。如果你发现不能如你所愿地发现测试函数,使用exposeTestFunctionNames()方法就能解决这个问题。
在测试页面里定义exposeTestFunctionNames方法,jsunit运行器在执行时会寻找exposeTestFunctionNames方法,只执行在此方法内指定的方法;
//向JsUnit框架显式暴露测试函数名
function exposeTestFunctionNames(){
var tests = new Array();
tests[0] = “testAdd”;
tests[1] = “testMinus”;
tests[2] = “testMultiply”;
tests[3] = “testDivide”;
return tests;
}
七、 setUpPage函数
此函数会在页面加载后首先执行,并且只执行一次,类似于JUnit4中的@BeforeClass注解
function setUpPage(){
arg1 = 3;
arg2 = 6;
//此行代码必须放置在setUpPage的最后,在完成资源加载后告诉JsUnit该函数已执行完毕
setUpPageStatus = “complete”;
}
八、 测试实例
<script type=”text/javascript”>
function addNumbers(){
var v1 = document.getElementById(”value1″).value;
var v2 = document.getElementById(”value2″).value;
var result = addTwoNumbers(v1, v2);
return result;
}
function addTwoNumbers(value1, value2){
return parseInt(value1) + parseInt(value2);
}
function setUp() //类比于JUnit中的setUp
{
document.getElementById(”value1″).value = 6;
document.getElementById(”value2″).value = 7;
}
function tearDown() //类比于JUnit中的tearDown
{
document.getElementById(”value1″).value = “”;
document.getElementById(”value2″).value = “”;
}
function testAddNumbers(){
var result = addNumbers();
assertEquals(13, result);
}
</script>
<BODY>
<form>
<input type=”text” id=”value1″><br>
<input type=”text” id=”value2″><br>
<input type=”text” id=”result”><br>
<input type=”button” value=”Add” onclick=”addNumbers()”>
</BODY>
九、 日志跟踪
? 分3个级别:warn、info和debug
? 测试函数应用
function testAdd()
{
var result = add(4, 2);
assertEquals(6, result);
warn(”result ” , result);
}
? 在testRunner.htmll里有显示日志级别跟踪的选择;
十、 Jsunit的测试套件
测试套件的函数名一定为suite;
function suite()
{
var testSuite = new top.jsUnitTestSuite();
//增加的测试页面的路径是相对于测试运行器的路径的(testRunner.html),而不是相对于当前的页面
testSuite.addTestPage(”../test1.html”);
testSuite.addTestPage(”../test2.html”);
//套件里还可以在包含套件
testSuite.addTestSuite(secondSuite ());
return testSuite;
}
function secondSuite() //需要与suite定义在同一个页面中
{
var testSuite = new top.jsUnitTestSuite();
testSuite.addTestPage(”../test1.html”);
testSuite.addTestPage(”../test2.html”);
return testSuite;
}
作者:ikon999
来源:北风技术专栏
原文链接:http://column.ibeifeng.com/51564/20081008101.shtml
( 内容完 )
添加收藏到:
您可能还对这些文章感兴趣:



没有评论, 我来评论
小贴士:评论需要管理员审核后才会显示。请不要发布与国家法律相抵触的言论,北风网将保留追究责任的权利。
类似“顶”、“沙发”、“支持”之类没有营养的文字,对勤劳贡献的作者来说是令人沮丧的反馈信息。
请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
如果您发现自己的评论没有被审核或者不见了,请参考以上三条。