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/

刷去吧。

时间: 2024-11-10 07:16:31

Javascript单元测试之QUnit的相关文章

JS自动化测试 单元测试之Qunit

前言 因为公司开发了一套javascript SDK需要测试,在网上找了很久,找到了JQuery团队开发的QUnit,和基于JUnit的JsUnit,还有一些还没有看,先讲讲QUnit吧 下载 登录JQuery官网http://qunitjs.com/直接首页右边可以下载最新版本的QUnit. 或者直接点击下载qunit-1.16.0.js,使用QUnit还需要下载官方css文件.下载地址qunit-1.16.0.css 使用QUnit前提条件 1.需要引用qunit-1.16.0.js和qun

javascript单元测试之jasmine

目前 JS 单元测试框架有丰富的选择,比如 Buster.js.TestSwarm.JsTestDriver 等.而 Jasmine 作为流行的 JavaScript 测试工具,提出BDD(Behavior Driven Development)行为驱动开发的概念,仅 66K 左右,且功能丰富,可以容易的写出清晰简洁的针对项目的测试用例.对基于 JavaScript 开发的项目来说,是一款不错的测试框架选择. 安装: 下载 jasmine最新版 https://github.com/pivota

单元测试之Stub和Mock

单元测试之Stub和Mock FROM:http://www.cnblogs.com/TankXiao/archive/2012/03/06/2366073.html 在做单元测试的时候,我们会发现我们要测试的方法会引用很多外部依赖的对象,比如:(发送邮件,网络通讯,记录Log, 文件系统 之类的). 而我们没法控制这些外部依赖的对象.  为了解决这个问题,我们需要用到Stub和Mock来模拟这些外部依赖的对象,从而控制它们 阅读目录 实例 设计测试用例 什么是外部依赖 Stub和Mock的相同

谈谈单元测试之(四):测试工具 TestNG

前言 上一篇文章<测试工具 JUnit 4>中提到了 JUnit 4,并对 JUnit 4 做了简单的讨论,这篇文章我们将要围绕另一款测试工具讨论 -- TestNG.其实,这篇文章应该写在<测试工具 JUnit 3>之后,和<测试工具 JUnit 4>之前,为什么这么说呢? 那是因为,TestNG 是在 JUnit 3 之后出来了,而 JUnit 4 是在 TestNG 推出之后,综合 JUnit 3 的优点,并且借鉴了 TestNG 的优势,才推出的.但是,考虑到,

谈谈单元测试之(三):测试工具 JUnit 4

前言 上一篇文章<测试工具 JUnit 3>简单的讨论了 JUnit 3 的使用以及内部的方法.这篇文章将会在 JUnit 3 的基础上,讨论一下 JUnit 4 的新特性.同时,与 JUnit 3 做一个简单的对比.那么,废话就不多说了,直接进入正题. 介绍 JUnit 4.x 是利用了 Java 5 的特性(Annotation)的优势,使得测试比起 3.x 版本更加的方便简单,JUnit 4.x 不是旧版本的简单升级,它是一个全新的框架,整个框架的包结构已经彻底改变,但 4.x 版本仍然

单元测试之测试方法

单元测试面临的困难 职责不明确 类或者方法的职责不明确,违反了SRP原则. 类/方法如果处理了本不该它处理的逻辑,会造成单元测试需要关心过多的外部关联类. 静态方法 静态方法使得调用者直接面对实际的服务类,难以通过其它方式替代其实现,也难以扩展. 直接访问对象实例 调用者直接实例化服务对象,从而使用服务对象提供的服务.同静态方法一样,调用者直接面对服务类. 标准库 标准库中有非常多的接口调用使得调用者难以被测试. 准备数据 编写测试用例需要外部准备大量的数据. 可行的解决方案 重构系统 对于职责

单元测试之NSNull 检测

Unit Testing: 单元测试 测试这个词很容易理解,那么什么是单元(Unit)呢?一个单元指的就是应用程序中可以测试的最小单元.一组源代码可以测试,一般要求有明确的输入与输出.因此一般来说源代码中明确的包含输入输出的每一个方法被认为一个测试的单元(一个case).注意,这里的输出并不局限于方法的返回值对输入参数的改变,也包括方法在执行过程中改变的任何数据. 单元测试在程序里面可以理解一个模块一个方法,在每个可能存在的模块都进行测试,确保每个模块都没有问题,从而提高整体程序的质量. 单元测

我的单元测试之总结

单元测试 版权声明:本文为博主原创文章,未经博主允许不得转载. 以下关于单元测试的总结,是基于目前工作的内容进行的汇总,包括了单元测试的定义,单元测试assertion语句,单元测试的框架以及实践中的注意事项等.其中[***]为解释说明.在此推荐几本有关单元测试的书籍供参考.<单元测试的艺术><单元测试之道junit(Java版)><单元测试之道Nunit(C#版)>. Overview 一个UT当中,包括了准备数据,释放资源,执行要验证的那段逻辑代码,以及结果的验证等

Visual Studio 单元测试之二---顺序单元测试

原文:Visual Studio 单元测试之二---顺序单元测试 此文是上一篇博文:Visual Studio 单元测试之一---普通单元测试的后续篇章.如果读者对Visual Studio的单元测试不熟悉的话,请先参看上一篇.http://blog.csdn.net/tjvictor/archive/2011/02/09/6175362.aspx 本文会自动略去上篇中提到过的相关概念.方法.本文的例子可以使用下面的链接下载: http://download.csdn.net/source/30