java script 单元测试JSUnit 使用
javascript功能插件大集合,写前端的亲们记得收藏

【导读】:GitHub 上有一个Awesome –XXX 系列的资源整理。
awesome-javascript 是sorrycc 发起维护的JS 资源列表,内容包括:包管理器、加载器、测试框架、运行器、QA、MVC框架和库、模板引擎、数据可视化、时间轴、编辑器等等。
GitHub已发起「JavaScript 资源大全中文版」的整理。
https:///jobbole/awesome-javascript-cnjs扩展包下载地址:/download/checkResult.action?id=52&type=6包管理器管理着javascript 库,并提供读取和打包它们的工具。
•npm –npm 是javascript 的包管理器。
•Bower –一个web 应用的包管理器。
•component –能构建更好web 应用的客户端包管理器。
•spm –全新的静态包管理器。
•jam –一个专注于浏览器端和兼容RequireJS 的包管理器。
•jspm –流畅的浏览器包管理器。
•Ender –没有库文件的程序库。
•volo –以项目模板、添加依赖项与自动化生成的方式创建前端项目。
•Duo –一个整合Component、Browserify 和Go 的最佳思想,使开发者能快速方便地组织和编写前端代码的下一代包管理器。
加载器JavaScript 的模块或加载系统。
•RequireJS –JavaScript 文件和模块的加载器。
•browserify –在浏览器端以node.js 的方式require()。
•SeaJS –用于Web 的模块加载器。
•HeadJS –HEAD 的唯一脚本。
•curl –小巧、快速且易扩展的模块加载器,它能处理AMD、CommonJS Modules/1.1、CSS、HTML/text 和历史脚本。
•lazyload –小巧且无依赖的异步JavaScript 和CSS 加载器。
前端开发中如何有效地进行单元测试和调试

前端开发中如何有效地进行单元测试和调试在前端开发的领域中,单元测试和调试是确保代码质量、提高开发效率以及增强项目稳定性的关键环节。
然而,对于许多前端开发者来说,如何有效地进行单元测试和调试可能并不是一件轻松的事情。
本文将详细探讨在前端开发中如何做好这两项重要的工作。
首先,我们来谈谈单元测试。
单元测试是对软件中的最小可测试单元进行检查和验证的过程。
在前端开发中,通常指的是对函数、组件等进行单独的测试。
为什么要进行单元测试呢?一个重要的原因是它能够帮助我们在早期发现代码中的问题。
想象一下,如果在项目的后期才发现一个关键函数存在错误,那么修复这个错误可能会牵一发而动全身,导致大量的代码修改和重新测试。
而通过单元测试,我们可以在编写代码的同时就确保其功能的正确性,从而大大减少后期的返工成本。
另一个好处是提高代码的可维护性。
当我们对一个函数进行了充分的单元测试后,其他人在修改或者扩展这个函数时,就可以通过查看现有的测试用例来快速了解函数的预期行为,从而更加有信心地进行修改。
那么如何编写有效的单元测试呢?第一步是明确测试的目标。
我们需要清楚地知道这个函数或者组件应该完成什么样的功能,以及在不同的输入情况下应该返回什么样的结果。
接下来,选择合适的测试框架。
在前端开发中,常见的单元测试框架有 Jest、Mocha 等。
这些框架提供了丰富的断言函数和测试工具,能够帮助我们方便地编写和运行测试用例。
在编写测试用例时,要覆盖各种边界情况。
比如,对于一个接受数字参数的函数,要测试最小值、最大值、零值以及一些异常值等。
同时,还要考虑不同类型的参数,如字符串、数组等,确保函数能够正确处理各种可能的输入。
除了单元测试,调试也是前端开发中不可或缺的一部分。
调试的目的是找出代码中存在的问题并进行修复。
当我们遇到一个错误时,首先要做的是仔细阅读错误信息。
错误信息通常会提供一些线索,比如错误发生的位置、错误的类型等。
但有时候,错误信息可能并不是很清晰,这就需要我们进一步深入分析。
java script参考手册

java script参考手册【原创实用版】目录1.JavaScript 简介2.JavaScript 的基本语法3.数据类型与变量4.运算符与表达式5.流程控制语句6.函数与对象7.事件处理8.DOM 操作9.异步编程10.AJAX 与 JSON正文【JavaScript 简介】JavaScript 是一种轻量级的脚本语言,最初由 Netscape 通信公司开发,用于在网页上实现交互效果。
如今,JavaScript 已经发展成为一种强大的编程语言,可以用于开发各种类型的应用程序。
JavaScript 的优点在于它是一种解释型语言,可以在任何支持 JavaScript 的浏览器中运行,无需编译。
【JavaScript 的基本语法】JavaScript 的基本语法包括变量声明、函数定义、条件语句、循环语句等。
以下是一个简单的示例:```javascript// 变量声明var name = "张三";var age = 30;// 函数定义function sayHello() {alert("你好,世界!");}// 条件语句if (age >= 18) {alert("你已经成年了!");}// 循环语句for (var i = 0; i < 10; i++) {alert(i);}```【数据类型与变量】JavaScript 的数据类型包括字符串、数字、布尔值、null 和 undefined。
变量是用来存储数据的标识符,可以存储任何类型的数据。
【运算符与表达式】JavaScript 的运算符包括算术运算符、关系运算符、逻辑运算符和赋值运算符等。
表达式是用运算符连接的值,可以是变量、常量或者运算结果。
【流程控制语句】JavaScript 的流程控制语句包括条件语句(if-else)、循环语句(for、while、do-while)和跳转语句(break、continue、goto)。
单元测试规范

单元测试规范单元测试是一个项目质量好坏的关键,做好单元测试是项目能够顺利进行联调测试、系统测试、用户测试的前提;单元测试对项目成败有着重要的影响!单元测试的方法和工具:JUnit/DBunit/Cactus/Ejb3UnitStruts/TestCase for JUnit /HttpUnit/JsUnit等;单元测试的方法很多,JUnit是最基本,相对简单的一种方法,下面以Junit 为例介绍单元测试,希望每个人都能按如下步骤去执行:1.数据库单元测试指南1.1.测试代码的包结构暂时我们对于测试代代码的包结构做了如下的要求:1)首先为了把测试代码和开发代码分离,我们单独为测试代码建立一个代码文件夹(source folder)取名为test。
2)但是又为了能兼顾测试类和源类(需要进行测试的类)的关系,我们规定测试类的包结构与源类的包结构保持一致。
3)另外还涉及到种子文件(seed文件),我们暂时规定种子文件位于测试类同一个包下。
当然如果一个测试类对应的种子文件比较多(为个别方法建立单独的种子文件)的话,可以建立子包来存储。
4)其更新类的API他,如有特殊情况,可按具体情况做调整。
包结构示例图:1.2.对于各种类型方法的测试策略为了能够更具体形象描述测试流程,我们举个具体的实例:<?xml version='1.0' encoding='UTF-8'?><dataset><OWK.MBranch ORGCODE="6666" ORGNAME="测试6" ORGREGION="" ORGSN="CS"ORGTYPE="1" PARENTORGID="9999" MANAGERUSERID="admin"MANAGERTIME="20091016151330" STATUS="1" ORGNODESN="10,992" RESERVE1=""RESERVE2="" RESERVE3="" RESERVE4="" LEADERUSERID="zhang"ONEORGTYPE="1" VIEWORDER="1" INORGID="9999" TIMERESERVE1=""TIMERESERVE2="" STATUSRESERVE1="" STATUSRESERVE2="" DATERESERVE1=""DATERESERVE2="" INTRESERVE1="0" INTRESERVE2="0" MONEYRESERVE1="0"MONEYRESERVE2="0" INFORESERVE1="" INFORESERVE2="" REMARKRESERVE1=""REMARKRESERVE2="" /><OWK.MBranch ORGCODE="66661" ORGNAME="测试61" ORGREGION="" ORGSN="CS"ORGTYPE="11" PARENTORGID="6666" MANAGERUSERID="admin"MANAGERTIME="20091016151417" STATUS="1" ORGNODESN="10,992,1"RESERVE1="" RESERVE2="" RESERVE3="" RESERVE4="" LEADERUSERID="admin"ONEORGTYPE="1" VIEWORDER="1" INORGID="6666" TIMERESERVE1=""TIMERESERVE2="" STATUSRESERVE1="" STATUSRESERVE2="" DATERESERVE1=""DATERESERVE2="" INTRESERVE1="0" INTRESERVE2="0" MONEYRESERVE1="0"MONEYRESERVE2="0" INFORESERVE1="" INFORESERVE2="" REMARKRESERVE1=""REMARKRESERVE2="" /><OWK.MBranch ORGCODE="666611" ORGNAME="测试611" ORGREGION=""ORGSN="CS" ORGTYPE="2" PARENTORGID="6666" MANAGERUSERID="admin"MANAGERTIME="20091016151445" STATUS="1"ORGNODESN="10,992,1,1"RESERVE1="" RESERVE2="" RESERVE3="" RESERVE4="" LEADERUSERID="admin"ONEORGTYPE="2" VIEWORDER="1" INORGID="66661" TIMERESERVE1=""TIMERESERVE2="" STATUSRESERVE1="" STATUSRESERVE2="" DATERESERVE1=""DATERESERVE2="" INTRESERVE1="0" INTRESERVE2="0" MONEYRESERVE1="0"MONEYRESERVE2="0" INFORESERVE1="" INFORESERVE2="" REMARKRESERVE1=""REMARKRESERVE2="" /><OWK.MUSER_EXT USERID="zhang" USERNAME="张三" SEX="f" TEL="" FAX=""EMAIL="" BRANCHID="6666" SUBBRANCHID="666611" LEVEL="1" CMBID=""INBRANCHID="0010" /><OWK.MUSER_EXT USERID="admin" USERNAME="超级管理员" SEX="m" TEL="" FAX=""EMAIL="" IDNO="" BRANCHID="9999" SUBBRANCHID="9999" LEVEL="1"CMBID=" " INBRANCHID="" /><OWK.MUSER_EXT USERID="hradmin" USERNAME="人力资源管理员" SEX="m" TEL=""FAX="" EMAIL="" BRANCHID="6666" SUBBRANCHID="666611"LEVEL="1"RESERVE1="" RESERVE2="" RESERVE3="" INBRANCHID="0010" /> <OWK.MUSER_BASE USERID="zhang"PASSWD="96E79218965EB72C92A549DD5A330112"REGTIME="20091016151122"STATUS="1" ALLOWIPS="" BLOCKIPS="" LASTLOGINIP="127.0.0.1"LASTLOGINTIME="2009-10-16" ERRLOGINNUM="0"MODIFYUSERID="hradmin"MODIFYDATETIME="20091016151122" /><OWK.MUSER_BASE USERID="admin"PASSWD="96E79218965EB72C92A549DD5A330112"REGTIME="20061010103000"STATUS="1" ALLOWIPS="127.0.0.1,99.1.95.109"LASTLOGINIP="127.0.0.1"LASTLOGINTIME="2009-10-16" ERRLOGINNUM="59" /> <OWK.MUSER_BASE USERID="hradmin"PASSWD="96E79218965EB72C92A549DD5A330112"REGTIME="20091016150811"STATUS="1" LASTLOGINIP="127.0.0.1"LASTLOGINTIME="2009-10-16"ERRLOGINNUM="0" MODIFYUSERID="admin"MODIFYDATETIME="20091016150811" /></dataset>1.2.1.查询类的方法对于查询类的方法,他们有一些共同点:都不会改变数据库的内容,目的都是返回相关的数据。
软件测试需要学什么语言

软件测试需要学习什么语言引言在当今的软件开发行业中,测试是确保软件质量的重要环节。
软件测试涉及到多种技术和工具,其中语言的选择对于测试人员来说是至关重要的。
本文将探讨在软件测试中学习哪些语言对测试人员来说是有益的。
1. JavaJava是一种广泛使用的编程语言,特别适合于构建和测试大型软件系统。
学习Java语言对于软件测试人员来说是非常重要的,因为许多测试工具和框架都是用Java编写的。
以下是一些与Java相关的测试工具和框架:•JUnit:这是Java中最常用的单元测试框架之一,用于编写和运行单元测试。
•TestNG:可替代JUnit的测试框架,提供更多的测试功能和灵活性。
•Selenium:这是一个用于自动化Web应用程序测试的工具,支持Java语言编写测试脚本。
•Appium:一种用于测试移动应用程序的自动化框架,也支持Java语言编写脚本。
2. PythonPython是一种简单易学的编程语言,广泛应用于软件测试领域。
它以其简洁的语法和丰富的测试库而闻名,成为软件测试人员的首选语言之一。
以下是一些与Python相关的测试工具和框架:•pytest:这是Python中最受欢迎的测试框架之一,用于编写各种类型的自动化测试。
•behave:一个用于行为驱动开发(BDD)的测试框架,使用自然语言编写测试场景。
•Robot Framework:一种通用的自动化测试框架,支持关键字驱动和数据驱动的测试方法。
•Appium-Python-Client:Appium的Python客户端库,用于编写移动应用程序测试脚本。
3. CC#是一种由微软开发的专为.NET平台设计的编程语言,用于构建Windows桌面和Web应用程序。
在软件测试领域,C#在一些特定的测试工具和框架中被广泛使用。
以下是一些与C#相关的测试工具和框架:•NUnit:与JUnit类似的C#测试框架,用于编写和运行单元测试。
•SpecFlow:一个用于BDD的测试框架,使用Gherkin语言编写测试场景。
QUnit使用教程

QUnit使用教程一、什么是QUnit?QUnit(/)是一个非常强大的javascript 单元测试框架,可以帮你调试代码。
它是由 jQuery 团队的成员写的,而且是 jQuery 的官方测试套装。
它是完全基于浏览器运行的。
优点:1、使用起来非常方便,有漂亮的的外观和完整的测试功能2、非常简单容易上手。
3、不需要依赖任何软件包或者框架,只要能运行JS的地方及就可以,QUnit本身只有一個JS文件和CSS文件,如果需要的话可以和JQuery等其它框架整合4、不仅支持在浏览器中测试,还支持在Rhino和node.js等后端进行测试。
缺点:对自动测试的支援不好,很难和Ant/Maven或自动构建等工具整合二、QUnit环境配置任何Html和JavaScript编辑器(我的用的是Notepad++)从QUnit官方下载reference js和css文件三、QUnit测试步骤1、加入QUnit到单元测试(添加QUnit.js和QUnit.css到你要测试的HTML页面中。
)<script src="///qunit/qunit-1.22.0.js"></script><link rel="stylesheet"href="https:///qunit/qunit-1.22.0.css">如图:2、创建需要进行单元测试的JavaScript类将要进行单元测试的代码放到一个单独的js文件中(Calculations.js):// Create Calculation class.var Calculation = function () { };// Add Addition to method to the Calculation class.Calculation.prototype.Add = function (a, b) {return a + b;};// Add Subtraction method to the Calculation class.Calculation.prototype.Substraction = function (a, b) {return a - b;};// Add Multiplication method to the Calculation class.Calculation.prototype.Multiplication = function (a, b) { return a * b;};// Add Division method to the Calculation class.Calculation.prototype.Division = function (a, b) {return a / b;};3、为上面的方法创建一个单元测试用例(下面的代码就是上面JavaScript方法的单元测试用例,我们同样将它放到单独的一个js文件中(UnitTest.js))// Instantiate Calculation class.var c = new Calculation();// Unit test for addition.QUnit.test("Addition Test", function () {ok(c.Add(2, 3) == "5", "Passed!");});// Unit test for subtraction.QUnit.test("Substraction Test", function () {ok(c.Substraction(3, 2) == "1", "Passed!"); });// Unit test for division.QUnit.test("Division Test", function () {ok(c.Division(5, 5) == "1", "Passed!");});// Unit test for multiplication.QUnit.test("Multiplication Test", function () {ok(c.Multiplication(5, 5) == "25", "Passed!"); });QUnit.test("Multiplication Test", function () {ok(c.Multiplication(5, 6) == "25", "Faild!"); });如图:Qunit的断言(assert)API有下列10个:∙deepEqual(),使用===比較符,可比与基本类型比较object, array, regular expression, date, function∙notDeepEqual(),同deepEqual使用方法,只是变为当actual !== expected 为测试通过∙propEqual(),使用===比較符,跟deepEqual不同,propEqaul可以比较两个拥有不同constructor与prototype,但是属性一样的物件。
单元测试技术讲解
}
单元测试
• JUnit实践-查看测试结果
单元测试
• 测试技巧:异常测试
• public void testEncoding() {
– String str = "太阳"; – try {
• String utf8Str = Base.encoding(str, "GBK", "ErrorChar"); • fail();
ቤተ መጻሕፍቲ ባይዱ元测试
XUnit模式
• 全部测试(All Tests) 一次性执行所有的测试。 public class AllTests { public static void main() { run(AllTests.class); } public static Test suite() { TestSuite result = new TestSuite(“P tests”); result.addTestSuite(ATest.class); result.addTestSuite(BTest.class); result.addTestSuite(CTest.class); return result; } }
– assertEquals(ac[i], by[i]);
• } }
• }
单元测试
• • • • • • • JUnit实践-测试类中一次运行多个测试 public static void main(String[] args) {
– junit.textui.TestRunner.run(BaseTest.class);
单元测试
• 1. 2. 3. 4. 5. 单元测试的误区 编写单元测试太花时间了 运行测试代码的时间太长 测试代码并不是我的工作 我不清楚代码的行为,所以无从测试 单元测试代码不规范
单元测试常用注解
单元测试常用注解
单元测试是软件开发过程中的重要环节,用于确保每个单元的功能正常。
在进行单元测试时,我们常常使用注解来提供额外的信息或配置。
以下是一些常用的注解:
1.@Test:这个注解用于标识一个方法是单元测试。
JUnit框架默认会运行带有此注解的方法。
2.@Before:这个注解用于标识一个方法会在每个单元测试方法执行前运行。
通常用于设置测试前的准备工作。
3.@After:这个注解用于标识一个方法会在每个单元测试方法执行后运行。
通常用于清理测试后的环境。
4.@Ignore:这个注解用于暂时跳过某个测试方法。
可能是由于该方法尚未完成或已知存在一些问题。
5.@RunWith:这个注解用于指定一个自定义的测试运行器。
JUnit提供了一些内置的运行器,例如参数化测试运行器,也可以自定义运行器。
6.@Parameters:这个注解用于标识一个方法,该方法返回一个数组,数组中的每个元素都会作为参数传递给一个单元测试方法。
常用于参数化测试。
7.@Expected:这个注解用于指定一个异常类型,期望在某个测试方法中抛出。
如果该方法没有抛出该异常,那么测试将失败。
以上是常用的单元测试注解,不同的框架或库可能会有一些特有的注解。
在进行单元测试时,合理使用这些注解可以帮助我们更好地组织和管理测试代码。
java script参考手册
java script参考手册摘要:一、JavaScript简介1.JavaScript的定义2.JavaScript的起源和发展3.JavaScript的作用和应用场景二、JavaScript基本语法1.变量声明2.数据类型3.运算符与表达式4.流程控制语句三、函数与对象1.函数定义与调用2.函数参数与返回值3.对象创建与属性访问4.对象方法与事件处理四、DOM操作与BOM操作1.DOM(文档对象模型)2.BOM(浏览器对象模型)3.事件处理4.表单操作五、JavaScript高级特性1.闭包2.原型链3.异步编程4.模块化编程六、JavaScript编程实践1.代码规范与优化2.错误处理与调试3.性能优化4.开发工具与框架正文:一、JavaScript简介JavaScript是一种脚本语言,主要用于Web开发。
它可以在浏览器中运行,与HTML和CSS一起,构成了网页的三大核心技术。
JavaScript的起源可以追溯到1995年,由Netscape Communications公司开发。
如今,JavaScript已经成为了前端开发者的必备技能,广泛应用于网站、浏览器扩展、移动应用等各种场景。
二、JavaScript基本语法JavaScript的基本语法包括变量声明、数据类型、运算符与表达式以及流程控制语句。
变量声明可以使用var、let或const关键字。
数据类型包括字符串、数字、布尔值、null和undefined等。
运算符与表达式用于计算和比较变量值。
流程控制语句包括条件语句(if、if-else、switch)、循环语句(for、while、do-while)以及跳转语句(break、continue、return)等。
三、函数与对象函数是JavaScript中实现代码复用的重要手段,可以通过声明和调用的方式实现。
函数可以接受参数,并返回值。
对象是一种用于存储数据的集合,可以通过键值对的方式访问其属性。
ideajunit用法
ideajunit用法IdeaJunit是指在IntelliJ IDEA中使用JUnit进行单元测试的方法。
以下是IdeaJunit的使用方法:1. 添加JUnit依赖:在项目的`pom.xml`文件中添加JUnit依赖,例如:```xml<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>```2. 编写测试代码:创建一个测试类,并在其中编写测试方法。
测试方法需要使用`@Test`注解进行标记,例如:```javaimport org.junit.Test;public class MyTest {@Testpublic void testAdd() {int result = 1 + 1;assertEquals(2, result);}}```3. 运行测试:在测试类或测试方法上右键,选择“Run 'xxx'”或“Debug 'xxx'”即可运行或调试测试代码。
另外,也可以使用快捷键`Ctrl+Shift+F10`运行测试。
4. 查看测试结果:测试完成后,可以在IntelliJ IDEA的控制台中查看测试结果。
如果测试通过,控制台会输出“OK”;如果测试失败,会输出错误信息。
IdeaJunit使用起来非常简单,但是要注意测试代码的编写和JUnit依赖的添加。
另外,IdeaJunit还支持其他的测试框架,例如TestNG等,具体使用方法可以参考相关文档。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java script 单元测试JSUnit 使用目录(1) 起步例子 (2)(2) setUpPage() (4)(3) 测试集 (5)(4) 日志和跟踪 (7)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,可以看到测试结果信息。
1.// simple.js 被测试的javascript文件2.function addTwoNumbers(value1, value2){3.return parseInt(value1) + parseInt(value2);4.}1.<span style="font-size:16px;">// simple.js 被测试的javascript文件2.function addTwoNumbers(value1, value2){3.return parseInt(value1) + parseInt(value2);4.}</span>// simple_test.html 测试文件1.<!DOCTYPE HTML PUBLIC2."-//W3C//DTD HTML 4.0 Transitional//EN">3.<HTML>4.<HEAD>5.<TITLE> New Document </TITLE>6.<script language="JavaScript"7.src="jsunit/app/jsUnitCore.js"></script>8.<script language="JavaScript"9.src="simple.js"></script>10.<script language="JavaScript">11.function testValidArgs()12.{13.assertEquals("2 + 2 is 4",14.4, addTwoNumbers(2, 2));15.}16.function testWithNegativeNumbers()17.{18.assertEquals("-2 + -2 is -4",19.-4, addTwoNumbers(-2, -2));20.}21.function exposeTestFunctionNames()22.{23.var tests = new Array(2);24.tests[0] = "testValidArgs";25.tests[1] = "testWithNegativeNumbers";26.return tests;27.}28.</script>29.</HEAD>30.31.<BODY>32.test page for addTwoNumbers(value1, value2);33.</BODY>34.</HTML>1.<span style="font-size:16px;"><!DOCTYPE HTML PUBLIC2."-//W3C//DTD HTML 4.0 Transitional//EN">3.<HTML>4.<HEAD>5.<TITLE> New Document </TITLE>6.<script language="JavaScript"7.src="jsunit/app/jsUnitCore.js"></script>8.<script language="JavaScript"9.src="simple.js"></script>10.<script language="JavaScript">11.function testValidArgs()12.{13.assertEquals("2 + 2 is 4",14.4, addTwoNumbers(2, 2));15.}16.function testWithNegativeNumbers()17.{18.assertEquals("-2 + -2 is -4",19.-4, addTwoNumbers(-2, -2));20.}21.function exposeTestFunctionNames()22.{23.var tests = new Array(2);24.tests[0] = "testValidArgs";25.tests[1] = "testWithNegativeNumbers";26.return tests;27.}28.</script>29.</HEAD>30.31.<BODY>32.test page for addTwoNumbers(value1, value2);33.</BODY>34.</HTML></span>通常以"test"开头的测试函数会被自动发现,但如果没有发现,就需要我们用exposeTestFunctionNames 函数来显示指定测试函数。
(2) setUpPage()jsunit 包含了一次性启动方法,setUpPage() 只对每个测试页调用一次,即在所有测试函数调用之前调用,适于做预处理,但要注意在setUpPage()最后一行要把 setUpPageStatus 变量设置为“complete”, 如:1.var arg1;2.var arg2;3.4.function setUpPage(){5.arg1 = 2;6.arg2 = 2;7.setUpPageStatus = "complete";8.}1.<span style="font-size:16px;">var arg1;2.var arg2;3.4.function setUpPage(){5.arg1 = 2;6.arg2 = 2;7.setUpPageStatus = "complete";8.}</span>(3) 测试集测试集把不同的测试页分组组织,其中包含测试页或其他测试集,他们会按照顺序执行。
注意点:. 测试集中不能包含任何测试函数. 必须包含一个返回 jsUnitTestSuite 对象的 suite 函数. 有两个方法添加测试页:addTestPage(testPage) addTestSuite(testSuite), 在添加测试页时要注意路径,应是相对于testRunner.html 的例子:1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0Transitional//EN">2.<HTML>3.<HEAD>4.<TITLE> New Document </TITLE>5.<script language="JavaScript"6.src="jsunit/app/jsUnitCore.js"></script>7.<script language="JavaScript"8.src="simple.js"></script>9.<script language="JavaScript">10.function sampleSuite()11.{12.var sampleSuite = new top.jsUnitTestSuite();13.sampleSuite.addTestPage("../simple_test.html");14.return sampleSuite;15.}16.function suite()17.{18.var testSuite = new top.jsUnitTestSuite();19.testSuite.addTestSuite(sampleSuite());20.testSuite.addTestPage("../simple_test.html");21.return testSuite;22.}23.</script>24.</HEAD>25.26.<BODY>27.</BODY>28.</HTML>1.<span style="font-size:16px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">2.<HTML>3.<HEAD>4.<TITLE> New Document </TITLE>5.<script language="JavaScript"6.src="jsunit/app/jsUnitCore.js"></script>7.<script language="JavaScript"8.src="simple.js"></script>9.<script language="JavaScript">10.function sampleSuite()11.{12.var sampleSuite = new top.jsUnitTestSuite();13.sampleSuite.addTestPage("../simple_test.html");14.return sampleSuite;15.}16.function suite()17.{18.var testSuite = new top.jsUnitTestSuite();19.testSuite.addTestSuite(sampleSuite());20.testSuite.addTestPage("../simple_test.html");21.return testSuite;22.}23.</script>24.</HEAD>25.26.<BODY>27.</BODY>28.</HTML></span>(4) 日志和跟踪运行testRunner.html时会发现他有 Trace level 项,用于现实我们在测试方法中的日志信息,包含3个函数:1.warn(message, [value])rm(message, [value])3.debug(message, [value])。