JSunit入门教程.docx

上传人:b****1 文档编号:3543802 上传时间:2023-05-06 格式:DOCX 页数:15 大小:68.49KB
下载 相关 举报
JSunit入门教程.docx_第1页
第1页 / 共15页
JSunit入门教程.docx_第2页
第2页 / 共15页
JSunit入门教程.docx_第3页
第3页 / 共15页
JSunit入门教程.docx_第4页
第4页 / 共15页
JSunit入门教程.docx_第5页
第5页 / 共15页
JSunit入门教程.docx_第6页
第6页 / 共15页
JSunit入门教程.docx_第7页
第7页 / 共15页
JSunit入门教程.docx_第8页
第8页 / 共15页
JSunit入门教程.docx_第9页
第9页 / 共15页
JSunit入门教程.docx_第10页
第10页 / 共15页
JSunit入门教程.docx_第11页
第11页 / 共15页
JSunit入门教程.docx_第12页
第12页 / 共15页
JSunit入门教程.docx_第13页
第13页 / 共15页
JSunit入门教程.docx_第14页
第14页 / 共15页
JSunit入门教程.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JSunit入门教程.docx

《JSunit入门教程.docx》由会员分享,可在线阅读,更多相关《JSunit入门教程.docx(15页珍藏版)》请在冰点文库上搜索。

JSunit入门教程.docx

JSunit入门教程

Jsunit教程

一环境配置

(1)从zip文件,其大部分“核心”都在jsunit/app目录中,

jsUnitCore.js

jsUnitTracer.js

jsUnitTestManager.js等

(2)解压后,可以使用testRunner.html来运行jsunit/tests目录中找到的任何测试页。

二如何编写测试

(1)函数要求

1)测试函数不能有任何参数

2)函数名称必须有test前缀

3)测试函数包含在一个测试页中

(2)注意:

1)测试页中可以包含多个其他函数或javeScript,但是如果把测试函数放在单独的JavaScript文件中,就需要使用exposeTestFunctionNames()方法,使JsUnit找到测试函数。

2)一般地,JsUnit会自动发现测试函数,如果不能如你所愿地发现测试函数,使用exposeTestFunctionNames()方法就能解决这个问题。

(3)断言方法

断言方法是任何单元测试的基本模块,它们是一些简单的布尔表达式,可以指示一个给定语句为true还是false。

断言失败时,就会产生一个错误。

下面是JsUnit提供的断言方法(assertmethod)。

assert([comment],booleanValue)

assertTrue([comment],booleanValue)

assertFalse([comment],booleanValue)

assertEquals([comment],value1,value2)

assertNotEquals([comment],value1,value2)

assertNull([comment],value)

assertNotNull([comment],value)

assertUndefined([comment],value)

assertNotUndefined([comment],value)

assertNaN([comment],value)

assertNotNaN([comment],value)

fail(comment)

我们先可以从字面象征性的理解,并参考JsUnit包中提供的测试页。

三如何测试

打开JsUnit包中的testRunner.html,输入你要测试的文件地址,点击Run即可。

结果会显示在(有问题会显示红色):

测试需要注意:

1)JsUnit不会为每次测试运行重新加载测试页,所以变量状态会在多次测试之间保留。

2)测试会按测试页中声明的顺序执行,先从最上面的测试开始[5]。

这个我们在以后的测试中会有体会。

四例子

(1)把生产代码和测试代码放在一个页面的例子:

下面是HTML代码:

ASimpleTestPage

functionaddTwoNumbers(value1,value2){

returnvalue1+value2;

}

functiontestValidArgs(){

assertEquals("2+2is4",4,addTwoNumbers(2,2));

}

functiontestWithNegativeNumbers(){

assertEquals("negativenumbers:

-2+-2is-4",-4,

addTwoNumbers(-2,-2));

}

ThisisasimpletestpageforaddTwoNumbers(value1,value2).

写好上面的代码后,我们就可以进行测试了。

(2)生产代码和测试代码分开放的例子:

我们将下面的生产代码放到simple.js文件中:

functionaddTwoNumbers(value1,value2){

returnvalue1+value2;

}

这样我们的测试页面就要像下面这样写了:

AnotherTestPage

functiontestValidArgs(){

assertEquals("2+2is4",4,addTwoNumbers(2,2));

}

functiontestWithNegativeNumbers(){

assertEquals("negativenumbers:

-2+-2is-4",-4,addTwoNumbers(-2,-2));

}

ThisisasimpletestpageforthesimpleJSfile.

这样我们直接测试这个页面就可以了,可以发现跟第一个例子是一样的效果。

(3)手动去找测试函数的例子:

通过上面两个例子我们发现测试函数会自动被发现,但是当你发现点击Run后没有反应,就需要使用exposeTestFunctionNames(),以确保JsUnit能找到你的测试,代码如下:

ATestPageWithexposeTestFunctions

functiontestValidArgs(){

assertEquals("2+2is4",4,addTwoNumbers(2,2));

}

functiontestWithNegativeNumbers(){

assertEquals("negativenumbers:

-2+-2is-4",-4,addTwoNumbers(-2,-2));

}

functionexposeTestFunctionNames(){

vartests=newArray

(2);

tests[0]="testValidArgs";

tests[1]="testWithNegativeNumbers";

returntests;

}

ThisisasimpletestpagethatusesexposeTestFunctionNames.

(4)带HTML元素值的例子:

在这之前我们先来了解一下setUp()和tearDown()方法,

setUp()会在每个测试之前调用

tearDown()会在每个测试之后调用

下面我们增加一个表单。

你要使用setUp()填写这个表单,然后使用tearDown()方法自行清空。

UsingsetUpandtearDown

functionsetUp(){

document.getElementById("value1").value="2";

document.getElementById("value2").value="2";

}

functiontestValidArgs(){

assertEquals("2+2shouldequal4",4,addNumbers());

}

functionaddNumbers(){

varval1=document.getElementById("value1").value;

varval2=document.getElementById("value2").value;

alert(addTwoNumbers(val1,val2));

returnaddTwoNumbers(val1,val2);

}

functiontearDown(){

document.getElementById("value1").value="";

document.getElementById("value2").value="";

}

(5)一次性启动

要实现一次性启动需要使用setUpPage()函数。

1)setUpPage()函数只对每个测试页调用一次,即在所有测试函数调用之前调用。

2)一定要保证setUpPage()函数完成时把setUpPageStatus变量设置为complete,告诉JsUnit可以继续执行测试页上的测试了。

下面我们建立一个simple2.js文件:

functionaddTwoNumbers(value1,value2){

alert(parseInt(value1)+parseInt(value2));

returnparseInt(value1)+parseInt(value2);

}

functionsubtractTwoNumbers(value1,value2){

alert(parseInt(value1)-parseInt(value2));

returnparseInt(value1)-parseInt(value2);

}

functionmultiplyTwoNumbers(value1,value2){

alert(parseInt(value1)*parseInt(value2));

returnparseInt(value1)*parseInt(value2);

}

functiondivideTwoNumbers(value1,value2){

alert(parseInt(value1)/parseInt(value2));

returnparseInt(value1)/parseInt(value2);

}

在来写这个JS的测试代码:

UsingsetUpandtearDown

vararg1;

vararg2;

functionsetUpPage(){

arg1=2;

arg2=2;

setUpPageStatus="complete";

}

functiontestAddValidArgs(){

arg1++;

arg2++;

assertEquals("加法",6,addTwoNumbers(arg1,arg2));

}

functiontestSubtractValidArgs(){

arg1++;

arg2--;

assertEquals("减法",2,subtractTwoNumbers(arg1,arg2));

}

functiontestMultiplyValidArgs(){

arg1++;

arg2++;

assertEquals("乘法",15,multiplyTwoNumbers(arg1,arg2));

}

functiontestDivideValidArgs(){

arg1++;

arg2--;

assertEquals("除法",3,divideTwoNumbers(arg1,arg2));

}

ThisisanexampleofusingsetUpPage.

测试后,我们可以发现,上面的结果都正确,是因为setUpPage()方法只在所有测试前执行一次。

现在我们把此方法换成setUp()来比较一下效果。

UsingsetUpandtearDown

vararg1;

vararg2;

functionsetUp(){

arg1=2;

arg2=2;

}

functiontestAddValidArgs(){

arg1++;

arg2++;

assertEquals("加法",6,addTwoNumbers(arg1,arg2));

}

functiontestSubtractValidArgs(){

arg1++;

arg2--;

assertEquals("减法",2,subtractTwoNumbers(arg1,arg2));

}

functiontestMultiplyValidArgs(){

arg1++;

arg2++;

assertEquals("乘法",9,multiplyTwoNumbers(arg1,arg2));

}

functiontestDivideValidArgs(){

arg1++;

arg2--;

assertEquals("除法",3,divideTwoNumbers(arg1,arg2));

}

ThisisanexampleofusingsetUpPage.

五测试集

测试集把不同的测试页分组组织,这样只需运行一个测试集就能一次运行类似的一组测试。

测试集其实就是一些特殊的测试页,其中包含的测试页或其他测试集(相应地就有了一个主测试集)会按顺序运行。

1)测试集中不能包含任何测试函数;

2)测试集必须包含一个返回JsUnitTestSuite对象的suite()函数;

3)向测试集中增加测试页或子测试集,可以使用方法:

addTestPage(testPage)和addTestSuite(testSuite);

4)addTestPage(testPage)向测试集中增加单个的测试页,参数为测试页文件相对于测试运行工具的相对路径名;

5)addTestSuite(testSuite)向测试集中增加另一个测试集,参数为在suite函数所在的同一个页面中声明的JsUnitTestSuite;

下面我们用之前的测试页组成一个测试集:

UsingsetUpandtearDown

functionsampleSuite(){

varsampleSuite=newtop.jsUnitTestSuite();

sampleSuite.addTestPage("myModel/1.html");

sampleSuite.addTestPage("myModel/2.html");

returnsampleSuite;

}

functionsuite(){

vartestSuite=newtop.jsUnitTestSuite();

testSuite.addTestSuite(sampelSuite());

testSuite.addTestPage("myModel/4.html");

returntestSuite;

}

ThisisanexampleofusingsetUpPage.

【这个的测试结果,我等了半天也没反应,也不报超时】

六跟踪与日志

JsUnit支持跟踪!

使用以下3个函数完成,任何测试都可以调用(注意,在每个函数中,value参数是可选的):

warn(message,[value])

inform(message,[value])

debug(message,[value])

JsUnit支持3个跟踪级别:

warn(警告)

如果选择warn,则只会显示由warn()函数发出的消息,选择info则会显示由warn()和inform()发出的消息。

默认值为notracing(不跟踪),可以在测试工具中设置:

将跟踪级别调到debug,然后我们修改一下之前的例子,加入跟踪代码:

ASimpleTestPage

functionaddTwoNumbers(value1,value2){

warn("thisisawarningmessage");

warn("thisisawarningmessagewithavalue",value1);

returnvalue1+value2;

}

functiontestValidArgs(){

inform("thisisaninformmessage");

assertEquals("2+2is4",4,addTwoNumbers(2,2));

}

functiontestWithNegativeNumbers(){

debug("thisisadebugmessage");

assertEquals("negativenumbers:

-2+-2is-4",-4,

addTwoNumbers(-2,-2));

}

ThisisasimpletestpageforaddTwoNumbers(value1,value2).

运行结果如下:

七使用标准/定制查询串

(1)testPage参数

如果你有一个测试集或测试页,需要经常运行,你可以使用测试运行工具支持的testPage[8]查询串来运行测试。

例如,在浏览器中输入:

File:

///E:

/jsunit2_2/jsunit/testRunner.html?

testPage=E:

/jsunit2_2/jsunit/myModel/1.html

回车,会发现测试运行工具运行了起来。

(2)autoRun参数

运行了上面的地址,我们还需要自己手动去点击run运行,现在我们使用autoRun参数来让它自动运行。

file:

///E:

/jsunit2_2/jsunit/testRunner.html?

testPage=E:

/jsunit2_2/jsunit/myModel/1.html&autoRun=true

在浏览器中输入以上地址,我们就会看到测试结果了。

使用这些带参数的查询串,可以方便我们做一些经常性的测试,我们可以把它加入书签,这样测试起来就很简单了。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2