测试用例里面的一种判断语句
在mocha中需要require
var assert = require(‘assert’)
参数一般有三个
value 待判断的值
expected 要和value进行比较的值,看二者是否相等或者不相等,如果没有expected,则是在判断value的值是否为真
message 判断结果为错误时,抛出来的错误提醒语句,如果 message 参数为 undefined,则赋予默认的错误信息。
assert(value[, message]) 同assert.ok()
assert.ok(value[, message]) value如果不为真值,抛出一个带有 message 属性的 AssertionError
assert.fail(message) 抛出错误信息message
assert.fail(actual, expected, message, operator) 根据参数抛出相应错误信息
如果 message 不存在,则错误信息会被设为 actual 的值加分隔符 operator 再加 expected 的值。 否则,错误信息为 message 的值,operator没有的话,默认为!=
assert.ifError(value) 如果 value 为真,则抛出 value,如果为假,则测试通过
assert.equal(actual, expected[, message]) 使用相等运算符(==)测试 actual 参数与 expected 参数是否相等。
assert.deepEqual(actual, expected[, message]) 测试 actual 参数与 expected 参数是否深度相等。 原始值使用 相等运算符(==)比较,只比较可枚举的自身属性。
深度相等意味着子对象的可枚举的自身属性也会被比较1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16const obj1 = {
a: {
b: 1
}
};
const obj3 = {
a: {
b: 1
}
};
const obj4 = Object.create(obj1);
assert.deepEqual(obj1, obj4);
// 抛出 AssertionError: { a: { b: 1 } } deepEqual {}
// 原型会被忽略
assert.deepEqual(obj1, obj3);
// 通过,两个对象相等
assert.deepStrictEqual(actual, expected[, message])
大多数情况下与 assert.deepEqual() 一样,但有三个例外:
原始值使用 全等运算符(===)比较。使用SameValueZero比较法来比较设置的值及映射的键(也就意味不用考虑caveats)。
对象的 原型 也使用 全等运算符 比较。
对象的类型标签应该相同。
assert.notEqual(actual, expected[, message]) 使用 不等运算符(!=)测试是否不相等。
assert.notDeepEqual(actual, expected[, message]) 测试是否不深度相等。 与 assert.deepEqual() 相反。
assert.notStrictEqual(actual, expected[, message]) 使用 不全等运算符(!==)测试是否不全等。
assert.notDeepStrictEqual(actual, expected[, message]) 测试是否不深度全等。 与 assert.deepStrictEqual() 相反。
assert.throws(block[, error][, message]) 期望 block 函数抛出错误error,如果block(function)抛出error的错误,则测试通过
error 可以是构造函数、正则表达式、或自定义的验证函数。
assert.doesNotThrow(block[, error][, message]) 断言 block 函数不会抛出错误
当 assert.doesNotThrow() 被调用时,它会立即调用 block 函数。
如果抛出错误且错误类型与 error 参数指定的相同,则抛出 AssertionError。 如果错误类型不相同,或 error 参数是 undefined,则错误会被抛回给调用者。
如果block不抛出错误,则测试通过