📜  QUnit-期望断言(1)

📅  最后修改于: 2023-12-03 15:19:39.490000             🧑  作者: Mango

QUnit-期望断言

简介

QUnit是JavaScript的单元测试框架之一,它旨在为JavaScript开发人员提供简单、通用的方式来编写和运行测试。QUnit有许多功能,其中之一是期望断言。

期望断言可以让开发人员编写更简约、易读的测试代码。它基本上是断言的判断优化,可以使测试用例更直观。测试运行时,它会收集所有的期望断言,将它们与实际执行结果进行比较,并输出结果。

安装

QUnit是一个独立的库,可以通过CDN或本地下载使用:

<!-- CDN link -->
<script src="https://code.jquery.com/qunit/qunit-2.16.0.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.16.0.css">

<!-- Download and use locally -->
<script type="text/javascript" src="path/to/jquery.js"></script>
<script type="text/javascript" src="path/to/qunit.js"></script>
<link rel="stylesheet" href="path/to/qunit.css">

安装好后,可以开始使用期望断言。

期望断言语法

期望断言语法非常简单,它只包含两个参数:期望值和实际值。下面是期望断言的基本语法:

assert.expect( number );
assert.strictEqual( actual, expected, message );
assert.notStrictEqual( actual, expected, message );
assert.deepEqual( actual, expected, message );
assert.notDeepEqual( actual, expected, message );
assert.ok( result [, message ] );
assert.notOk( result [, message ] );
assert.raises( fn [, expected ] [, message ] );

其中,number 表示需要对多少个断言进行测试;actual 和 expected 分别表示实际值和期望值;message 是在测试失败时需要输出的信息。

下面是一些示例:

QUnit.test( "compare values", function( assert ) {
  assert.expect( 2 );

  assert.strictEqual( 1, 1, "1 and 1 are equal" );
  assert.strictEqual( "hello", "hello", "both strings are equal" );
});

这段代码会测试两个断言,如果这两个断言都通过,则测试成功。否则,QUnit 会输出失败的信息。

期望断言示例

让我们来看一些期望断言的实际使用情况。

等式判断

以下示例测试一个函数,该函数将两个数字相加:

function add( x, y ) {
  return x + y;
}

QUnit.test( "addition test", function( assert ) {
  assert.strictEqual( add( 2, 3 ), 5 );
});

这个测试用例检查函数 add 的输出是否等于 5。如果它输出 5,测试将通过。

数组比较

以下示例测试一个函数,该函数返回一个对象,其中包含一个数组:

function getNumbers() {
  return {
    numbers: [ 1, 2, 3 ]
  };
}

QUnit.test( "getNumbers test", function( assert ) {
  var result = getNumbers();

  assert.deepEqual( result.numbers, [ 1, 2, 3 ] );
});

这个测试用例检查函数 getNumbers 的返回值是否包含一个数组,而且这个数组的元素是 1、2、3。如果它包含这些元素,测试将通过。

异常处理

以下示例测试一个函数,该函数会抛出一个异常:

function throwError() {
  throw new Error( "an error" );
}

QUnit.test( "throwError test", function( assert ) {
  assert.raises( throwError, Error );
});

这个测试用例检查函数 throwError 是否正常抛出一个异常。如果它抛出了 Error 异常,测试将通过。

结论

期望断言可以使你的测试代码更易读、易于维护,而且能够让你的测试用例更形象化。通过对期望断言的使用,你可以更容易地创建和运行测试用例。

QUnit 是一个强大的单元测试框架,它具有非常丰富的功能和可配置性。如果你需要编写 JavaScript 单元测试用例,肯定要考虑它。