Javascript单元测试之QUnit
首先去Qunit官网下载。
Qunit有一个js脚本文件和一个css我们在页面中引入它。
<script src="qunit-2.0.1.js"></script>
<link rel="stylesheet" href="qunit-2.0.1.css">
页面中有两段必须的标签。
<div id="qunit"></div>
<div id="qunit-fixture"></div>
不写上这个,页面就是空白的了,这两个标签用来显示测试结果以及其他的东西。
接下来我们可以新建一个js文件来进行简单的测试了。
function add(a, b) {
return a + b;
}QUnit.test( "add test", function( assert ) {
assert.ok( add(2,3) === 6, "add IS 5" );
});
结果如下:

看到圈起来的没
QUnit.test( "add test", function( assert ) {
assert.ok( add(2,3) === 6, "add IS 5" );
});
QUnit.test表示你要测试一段代码,第一个也就是我圈起来的那段,只是用来显示的,第二个参数是一个函数,里面放一个assert参数,这个测试有很多的属性,在这里我们用到的是ok这个函数可以用来测试一个布尔值,第一个写你要测试的,如果相等表示通过,否则会报错,第二个也是用来显示的。
如果是通过的会是这样的。
如果你想比较两个值是否相等而不是比较布尔值,可以用equal函数。
QUnit.test( "test", function( assert ) {
assert.equal( 555 , 555 , "IS 555 ?" );
});
n1:实际值
n2:希望值
n3:看看而已

如果这样:
QUnit.test( "test", function( assert ) {
assert.equal( '555' , 555 , "IS 555 ?" );
});

因为equal用的是Javascript中的==比较,所以会隐式转换。
如果不想这样我们可以使用deepEqual函数
QUnit.test( "test", function( assert ) {
assert.deepEqual( '555' , 555 , "IS 555 ?" );
});
deepEqual和equal函数功能差不多,不过它用的是===全等。

如果是异步的话这些就有些无能为力了,不管QUnit提供了几个函数可以解决。
QUnit.test( "test", function( assert ) {
var done = assert.async();
var qunit = document.getElementById('qunit');
qunit.onclick = function(){
assert.ok( true , "IS 555 ?" );
done();
};});
assert.async函数用来创建一个异步操作它会返回一个函数,这个可以在你测试的下方执行一下done();
但是正如QUnit官方说的:
Call assert.async() for each operation. Each done callback can be called at most once.
调用每个操作async()断言,每个所做的回调可以至多被调用一次。
也就是说只能执行一次,看这个。

会多一次的,也就是说如果你想执行多次这样还不行,但是有一个叫啥断言的东西,我们来看看。
QUnit.test( "test", function( assert ) {
assert.expect(5);
var done = assert.async(5);
var qunit = document.getElementById('qunit');
qunit.onclick = function(){
assert.ok( true , "istrue" );
done();
};});

assert.expect(5);这里写你要测试的次数,var done = assert.async(5);也要加上次数。
我也醉了为什么要限制这个。
QUnit官网:http://api.qunitjs.com/
刷去吧。
Javascript单元测试之QUnit的更多相关文章
- 单元测试之Qunit
单元测试之Qunit 前言 因为公司开发了一套javascript SDK需要测试,在网上找了很久,找到了JQuery团队开发的QUnit,和基于JUnit的JsUnit,还有一些还没有看,先讲讲QU ...
- JS自动化测试 单元测试之Qunit
前言 因为公司开发了一套javascript SDK需要测试,在网上找了很久,找到了JQuery团队开发的QUnit,和基于JUnit的JsUnit,还有一些还没有看,先讲讲QUnit吧 下载 登录J ...
- iOS 单元测试之XCTest详解(一)
iOS 单元测试之XCTest详解(一) http://blog.csdn.net/hello_hwc/article/details/46671053 原创blog,转载请注明出处 blog.csd ...
- 玩转单元测试之Testing Spring MVC Controllers
玩转单元测试之 Testing Spring MVC Controllers 转载注明出处:http://www.cnblogs.com/wade-xu/p/4311657.html The Spri ...
- 玩转单元测试之WireMock -- Web服务模拟器
玩转单元测试之WireMock -- Web服务模拟器 WireMock 是一个灵活的库用于 Web 服务测试,和其他测试工具不同的是,WireMock 创建一个实际的 HTTP服务器来运行你的 We ...
- 单元测试之NSNull 检测
本文主要讲 单元测试之NSNull 检测,在现实开发中,我们最烦的往往就是服务端返回的数据中隐藏着NSNull的数据,一般我们的做法是通过[data isKindOfClass:[NSNull cla ...
- [转载]单元测试之道(使用NUnit)
首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试……终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而又忐忑的心情点击界面上的 ...
- 单元测试之道(使用NUnit)
首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试……终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而 又忐忑的心情点击界面上 ...
- 使用VisualStudio进行单元测试之二
借着工作忙的借口,偷了两天懒,今天继续单元测试之旅.前面说了如何进行一个最简单的单元测试,这次呢就跟大家一起来熟悉一下,在visual studio中如何进行数据驱动的单元测试. 开始之前先来明确一下 ...
随机推荐
- wince mobile环境下播放WAV声音
[DllImport("coredll", EntryPoint = "PlaySound")] public static extern i ...
- Windows 8 一起学习
收藏慢慢看 http://www.devdiv.com/Windows_Phone-windows_-thread-130302-1-1.html
- Struts2中获取servlet API的几种方式
struts2是一个全新的MVC框架,如今被广大的企业和开发者所使用,它的功能非常强大.这给我们在使用servlet 纯java代码写项目的时候带来了福音.但是一般来说,我们的项目不到一定规模并不需要 ...
- android wifi P2P CONNECT, INVITE和JOIN流程选择
android wifi P2P CONNECT, INVITE和JOIN流程选择
- Yaf零基础学习总结4-Yaf的配置文件
在上一节的hello yaf当中我们已经接触过了yaf的配置文件了, Yaf和用户共用一个配置空间, 也就是在Yaf_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置 ...
- HDU4430 Yukari's Birthday(枚举+二分)
Yukari's Birthday HDU4430 就是枚举+二分: 注意处理怎样判断溢出...(因为题目只要10^12) 先前还以为要用到快速幂和等比数列的快速求和(但肯定会超__int64) 而 ...
- Linux之RPM安装软件
源码包 (可以看到源代码) 脚本安装包(写好的xsheel一键安装.本质还是源码包和二进制包) 二进制包(RPM包.系统默认包) 包管理系统简单,通过命令就可以安装.卸载 ...
- Mac OS X上编写 ASP.NET vNext 系列中断和再开声明
这个系列其实已经中断有一段时间了,主要是由两个原因: 第一是微软那边把以前的KRE改成了XRE,所以导致前两篇有点过时了. 第二是自己年前1月份被裁员,Mac的机器被回收,再加上忙于和公司扯皮和找工作 ...
- PC版淘宝UWP揭秘
经过第一轮内测后的bug数量:65 2015/11/27 - bug数量 = 60 2015/11/30 - bug数量 = 53 2015/12/1 - bug数量 = 49 2015/12/2 - ...
- 团队项目——站立会议 DAY8
第八次站立会议记录: 参会人员:张靖颜,钟灵毓秀,何玥,赵莹,王梓萱 项目进展: 1.张靖颜:在反复修改和审查后,处理功能模块代码出错处,完善并运行. 2.钟灵毓秀:再次检查代码,运行报错处的代码修改 ...