分享
 
 
 

javascript单元测试(Jsunit应用)

王朝html/css/js·作者佚名  2008-08-08
窄屏简体版  字體: |||超大  

Jsunit 就是 Junit 的javascript 版本,下载并解压Jsunit zip,大部分的核心文件都在 jsunit/app 目录下,两个最基本的文件:

. jsUnitCore.js -- 每个测试文件都要引用它

. testRunner.html -- 用来运行具体的jsunit 测试

(1) 起步例子:

在Jsunit解压后的同级目录下建立两个文件,目录结构:

|-- jsunit

|-- simple.js

|-- simple_test.html

写完后运行 jsunit/testRunner.html,在页面中选择simple_test.html, 点击run,可以看到测试结果信息。

// simple.js 被测试的javascript文件

function addTwoNumbers(value1, value2){

return parseInt(value1) + parseInt(value2);

}

// simple_test.html 测试文件

<!DOCTYPE HTML PUBLIC

"-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<script language="JavaScript"

src="jsunit/app/jsUnitCore.js"></script>

<script language="JavaScript"

src="simple.js"></script>

<script language="JavaScript">

function testValidArgs()

{

assertEquals("2 + 2 is 4",

4, addTwoNumbers(2, 2));

}

function testWithNegativeNumbers()

{

assertEquals("-2 + -2 is -4",

-4, addTwoNumbers(-2, -2));

}

function exposeTestFunctionNames()

{

var tests = new Array(2);

tests[0] = "testValidArgs";

tests[1] = "testWithNegativeNumbers";

return tests;

}

</script>

</HEAD>

<BODY>

test page for addTwoNumbers(value1, value2);

</BODY>

</HTML>

通常以"test"开头的测试函数会被自动发现,但如果没有发现,就需要我们用exposeTestFunctionNames 函数来显示指定测试函数。

(2) setUpPage()

jsunit 包含了一次性启动方法,setUpPage() 只对每个测试页调用一次,即在所有测试函数调用之前调用,适于做预处理,但要注意在setUpPage()最后一行要把 setUpPageStatus 变量设置为 “complete”, 如:

var arg1;

var arg2;

function setUpPage(){

arg1 = 2;

arg2 = 2;

setUpPageStatus = "complete";

}

(3) 测试集

测试集把不同的测试页分组组织,其中包含测试页或其他测试集,他们会按照顺序执行。

注意点:

. 测试集中不能包含任何测试函数

. 必须包含一个返回 jsUnitTestSuite 对象的 suite 函数

. 有两个方法添加测试页:addTestPage(testPage) addTestSuite(testSuite), 在添加测试页时要注意路径,应是相对于testRunner.html 的

例子:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<script language="JavaScript"

src="jsunit/app/jsUnitCore.js"></script>

<script language="JavaScript"

src="simple.js"></script>

<script language="JavaScript">

function sampleSuite()

{

var sampleSuite = new top.jsUnitTestSuite();

sampleSuite.addTestPage("../simple_test.html");

return sampleSuite;

}

function suite()

{

var testSuite = new top.jsUnitTestSuite();

testSuite.addTestSuite(sampleSuite());

testSuite.addTestPage("../simple_test.html");

return testSuite;

}

</script>

</HEAD>

<BODY>

</BODY>

</HTML>

(4) 日志和跟踪

运行testRunner.html时会发现他有 Trace level 项,用于现实我们在测试方法中的日志信息,包含3个函数:

warn(message, [value])

inform(message, [value])

debug(message, [value])

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有