您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > JSunit入门教程
1Jsunit教程一环境配置(1)从上下载JsUnitzip文件,其大部分“核心”都在jsunit/app目录中,jsUnitCore.jsjsUnitTracer.jsjsUnitTestManager.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包中提供的测试页。2三如何测试打开JsUnit包中的testRunner.html,输入你要测试的文件地址,点击Run即可。结果会显示在(有问题会显示红色):测试需要注意:1)JsUnit不会为每次测试运行重新加载测试页,所以变量状态会在多次测试之间保留。2)测试会按测试页中声明的顺序执行,先从最上面的测试开始。这个我们在以后的测试中会有体会。四例子(1)把生产代码和测试代码放在一个页面的例子:下面是HTML代码:htmlheadtitleASimpleTestPage/titlescriptlanguage=JavaScriptsrc=../app/jsUnitCore.js/scriptscriptlanguage=JavaScriptfunctionaddTwoNumbers(value1,value2){returnvalue1+value2;}functiontestValidArgs(){assertEquals(2+2is4,4,addTwoNumbers(2,2));}functiontestWithNegativeNumbers(){assertEquals(negativenumbers:-2+-2is-4,-4,addTwoNumbers(-2,-2));}/script/headbody3ThisisasimpletestpageforaddTwoNumbers(value1,value2)./body/html写好上面的代码后,我们就可以进行测试了。(2)生产代码和测试代码分开放的例子:我们将下面的生产代码放到simple.js文件中:functionaddTwoNumbers(value1,value2){returnvalue1+value2;}这样我们的测试页面就要像下面这样写了:htmlheadtitleAnotherTestPage/titlescriptlanguage=JavaScriptsrc=../app/jsUnitCore.js/scriptscriptlanguage=JavaScriptsrc=simple.js/scriptscriptlanguage=JavaScriptfunctiontestValidArgs(){assertEquals(2+2is4,4,addTwoNumbers(2,2));}functiontestWithNegativeNumbers(){assertEquals(negativenumbers:-2+-2is-4,-4,addTwoNumbers(-2,-2));}/script/headbodyThisisasimpletestpageforthesimpleJSfile./body/html这样我们直接测试这个页面就可以了,可以发现跟第一个例子是一样的效果。(3)手动去找测试函数的例子:通过上面两个例子我们发现测试函数会自动被发现,但是当你发现点击Run后没有反应,就需要使用exposeTestFunctionNames(),以确保JsUnit能找到你的测试,代码如下:htmlheadtitleATestPageWithexposeTestFunctions/titlescriptlanguage=JavaScriptsrc=../app/jsUnitCore.js/scriptscriptlanguage=JavaScriptsrc=simple.js/scriptscriptlanguage=JavaScriptfunctiontestValidArgs(){4assertEquals(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;}/script/headbodyThisisasimpletestpagethatusesexposeTestFunctionNames./body/html(4)带HTML元素值的例子:在这之前我们先来了解一下setUp()和tearDown()方法,setUp()会在每个测试之前调用tearDown()会在每个测试之后调用下面我们增加一个表单。你要使用setUp()填写这个表单,然后使用tearDown()方法自行清空。htmlheadtitleUsingsetUpandtearDown/titlescriptlanguage=JavaScriptsrc=../app/jsUnitCore.js/scriptscriptlanguage=JavaScriptsrc=simple.js/scriptscriptlanguage=JavaScriptfunctionsetUp(){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);}5functiontearDown(){document.getElementById(value1).value=;document.getElementById(value2).value=;}/script/headbodyformid=testinputtype=textsize=3id=value1/inputtype=textsize=3id=value2/inputtype=buttonvalue=Addonclick=addNumbers()//form/body/html(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的测试代码:htmlheadtitleUsingsetUpandtearDown/titlescriptlanguage=JavaScriptsrc=../app/jsUnitCore.js/scriptscriptlanguage=JavaScriptsrc=simple2.js/script6scriptlanguage=JavaScriptvararg1;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));}fu
本文标题:JSunit入门教程
链接地址:https://www.777doc.com/doc-2879491 .html