jsunit测试
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
var script = document.createElement('script'); script.src = 'http://static.pay.baidu.com/resource/baichuan/ns.js'; document.body.appendChild(script);
下载文档到电脑,查找使用更方便
5下载券 1人已下载
下载
还剩7页未读,继续阅读
6
<script language="JavaScript"> var arg1; var arg2;
function setUpPage() { arg1 = 2; arg2 = 2;
setUpPageStatus = "complete"; }
function testAddValidArgs() { arg1 ++ arg2 ++
assertEquals("加法", 6, addTwoNumbers(arg1, arg2)); }
function testSubtractValidArgs() { arg1 ++ arg2 --
assertEquals("减法", 2, subtractTwoNumbers(arg1, arg2)); }
function testMultiplyValidArgs() { arg1 ++ arg2 ++
assertEquals("乘法", 15, multiplyTwoNumbers(arg1, arg2)); }
function testDivideValidArgs() { arg1 ++ arg2 --
assertEquals("除法", 3, divideTwoNumbers(arg1, arg2)); }
</script> </head> <body>
This is an example of using setUpPage. </body> </html>
测试后,我们可以发现,上面的结果都正确,是因为setUpPage()方法只在所有测试前执行一次。现在我们把此方法换成setUp()来比较一下效果。
<html> <head>
<title>Using setUp and tearDown</title> <script language="JavaScript"
src="../app/jsUnitCore.js"></script>
<script language="JavaScript" src="simple2.js"></script> <script language="JavaScript"> var arg1;
7
var arg2;
function setUp() { arg1=2 arg2=2 }
function testAddValidArgs() { arg1 ++ arg2 ++
assertEquals("加法", 6, addTwoNumbers(arg1, arg2)); }
function testSubtractValidArgs() { arg1 ++ arg2 --
assertEquals("减法", 2, subtractTwoNumbers(arg1, arg2)); }
function testMultiplyValidArgs() { arg1 ++ arg2 ++
assertEquals("乘法", 9, multiplyTwoNumbers(arg1, arg2)); }
function testDivideValidArgs() { arg1 ++ arg2 --
assertEquals("除法", 3, divideTwoNumbers(arg1, arg2)); }
</script> </head> <body>
This is an example of using setUpPage. </body> </html>
五 测试集
测试集把不同的测试页分组组织,这样只需运行一个测试集就能一次运行类似的一组测试。测试集其实就是一些特殊的测试页,其中包含的测试页或其他测试集(相应地就有了一个主测试集)会按顺序运行。
1)测试集中不能包含任何测试函数;
2)测试集必须包含一个返回JsUnitTestSuite对象的suite()函数;
3)向测试集中增加测试页或子测试集,可以使用方法:
addTestPage(testPage) 和addTestSuite(testSuite);
4)addTestPage(testPage)向测试集中增加单个的测试页,参数为测试页文
件相对于测试运行工具的相对路径名;
8
5)addTestSuite(testSuite) 向测试集中增加另一个测试集,参数为在suite
函数所在的同一个页面中声明的JsUnitTestSuite;
下面我们用之前的测试页组成一个测试集:
<html> <head>
<title>Using setUp and tearDown</title> <script language="JavaScript"
src="../app/jsUnitCore.js"></script> <script language="JavaScript"> function sampleSuite() {
var sampleSuite = new top.jsUnitTestSuite(); sampleSuite.addTestPage("myModel/1.html"); sampleSuite.addTestPage("myModel/2.html"); return sampleSuite; }
function suite() {
var testSuite = new top.jsUnitTestSuite(); testSuite.addTestSuite(sampelSuite()); testSuite.addTestPage("myModel/4.html"); return testSuite; }
</script> </head> <body>
This is an example of using setUpPage. </body> </html>
六 跟踪与日志
JsUnit支持跟踪!使用以下3个函数完成,任何测试都可以调用(注意,在每个函数中,value参数是可选的):
warn(message, [value]) inform(message, [value]) debug(message, [value])
JsUnit支持3个跟踪级别:warn(警告)< info(信息)< debug(调试),即如果运行测试时选择debug,就会看到warn()、inform()或debug()函数发出的所有消息。如果选择warn,则只会显示由warn()函数发出的消息,选择info则会显示由warn()和inform()发出的消息。默认值为no tracing(不跟踪),可以在测试工具中设置:
9
将跟踪级别调到debug,然后我们修改一下之前的例子,加入跟踪代码:
<html> <head>
<title>A Simple Test Page</title> <script language="JavaScript"
src="../app/jsUnitCore.js"></script> <script language="JavaScript">
function addTwoNumbers(value1, value2) { warn("this is a warning message");
warn("this is a warning message with a value", value1); return value1 + value2; }
function testValidArgs() {
inform("this is an inform message");
assertEquals("2 + 2 is 4", 4, addTwoNumbers(2, 2)); }
function testWithNegativeNumbers() {
debug("this is a debug message");
assertEquals("negative numbers: -2 + -2 is -4", -4, addTwoNumbers(-2, -2)); }
</script> </head> <body>
This is a simple test page for addTwoNumbers(value1, value2). </body> </html>
运行结果如下:
10
七 使用标准/定制查询串
(1)testPage参数
如果你有一个测试集或测试页,需要经常运行,你可以使用测试运行工具支持的testPage 查询串来运行测试。例如,在浏览器中输入:
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
在浏览器中输入以上地址,我们就会看到测试结果了。
使用这些带参数的查询串,可以方便我们做一些经常性的测试,我们可以把它加入书签,这样测试起来就很简单了。
jsunit测试的更多相关文章
- JavaScript单元测试框架JsUnit基本介绍和使用
JavaScript单元测试框架JsUnit基本介绍和使用 XUnit framework XUnit是一套标准化的独立于语言的概念和结构集合,用于编写和运行单元测试(Unit tests). 每一个 ...
- JavaScipt测试调研
JavaScript测试调研 前言 与其他语言相似,JavaScript的测试也会包括代码审查.单元测试等内容.本文就JavaScript的测试调研了一些测试工具和测试框架. 相对于其他很多高级语言语 ...
- ajax 基础教程
这是一本什么书?这是一本技术类的书籍,主要从历史.XMLHttpRequest对象.怎么样于服务器交互.构建完备的Ajax开发工具箱.使用jsUnit测试javascript 代码,总之就是让我们从这 ...
- 100本最棒的web前端图书推荐
前端技术,要学习的内容太多了,当你不知道从哪里开始的时候,你就先从看书开始,边看书边码代码,这个是学习编程必须的过程,因为你看一百遍,还不如自己写一遍,写一遍,第一可以加印象,第二便于更好的理解. 熟 ...
- JavaScript测试工具
大家都知道Javascript的测试比较麻烦,一般是开发使用一些浏览器的插件比如IE develop bar或是firebug来调试,而测试往往需要通过页面展示后的js错误提示来定位.那么还有其他比较 ...
- JsUnit && JUnit之讲解
首先我们定义我们的函数 这里以最简单的加减乘除四个方法来进行测试 建立我们的js文件myjs.js function add(num1,num2){ return num1 + num2; } fun ...
- javascript进阶——测试和打包分发
建立一个面向对象的好的代码基础后,为了达到代码重用的目的,通过调试使用适当的测试用例进行测试尤为必要,之后就是打包分发的主题. 一.调试与测试 1.调试 Firebug:包含了错误控制台.调试器.DO ...
- selenium自动化爬虫测试
import time from selenium import webdriver from lxml import etree from selenium.webdriver import Act ...
- SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...
随机推荐
- android内存泄露小谈
在做android的时候,用的语言大部分情况下都是java.以前最开始做的是编译器开发, 大部分情况都是用c语言和x86与arm架构的汇编,后来接触到ios用的是OC.对比之下, 感觉还是java用起 ...
- 鼠标经过导航中li时,一个彩色模块跟着鼠标移动
1.鼠标经过导航中li时,一个活动的li跟随鼠标移动,最终移动到鼠标的停留的位置.(如需鼠标离开后让活动的li回到初始位置,则用jq hover事件,当鼠标离开时,给活动的li设置left是0) 2. ...
- robotframework笔记1
机器人框架是一个基于Python的,可扩展的关键字驱动的自动化测试最终到终端的验收测试和验收测试驱动开发(ATDD)框架.它可用于检测分布式异类应用程序,其中,验证要求感人几种技术和接口. 下面列出了 ...
- Python安装BeautifulSoup库(Windows平台下)
简介 参照官网Beautiful Soup4.4.0文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/ 安装步骤 1.到https:// ...
- VBA对象模型(1)
关于对象和集合的比喻 Excel的基本单元是Workbook对象:在快餐连锁店中,基本的单元是单个餐馆.使用Excel可以添加工作簿和关闭工作簿,所有打开的工作簿组成了Workbooks集合(Work ...
- MessageDigest简介
一.概述 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法.信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值. MessageDi ...
- RAID5和RAID10,哪种RAID更适合你(上)
[IT168 专稿]存储是目前IT产业发展的一大热点,而RAID技术是构造高性能.海量存储的基础技术,也是构建网络存储的基础技术.专家认为,磁盘阵列的性能优势得益于磁盘运行的并行性,提高设备运行并行度 ...
- Web总结
Web总结 学习web前端理论基础必然是要过关的,这里我总结了一下比较基础的常用理论,还是比较有用哒! 一.名词解释 1.横切 在固定页面的宽度(按栅格化进行)并且对高度没有限制的容器称为一个标准横切 ...
- 5月23日 JavaScript
一.JavaScript简介 1.JavaScript是什么: 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它的用法: 在HTML中位置有三块: (1)head里面 (2)bod ...
- JavaScript中的test()方法
定义和用法 test() 方法用于检测一个字符串是否匹配某个模式. 语法 RegExpObject.test(string) 参数 描述 string 必需.要检测的字符串. 返回值 如果字符串 st ...