Node内蔵オブジェクトのassertについて
4857 ワード
ノード内蔵オブジェクトのassert
一.assertは主に何をしていますか?
assertモジュールはノードの内蔵モジュールであり,主に断言に用いられる.式が予想に合わない場合は、モジュールの機能をテストするために使用できるエラーが投げ出されます.いくつかは一般的です.
二.assertの使用
共通の概念:
* actual:
* expeacted:
* message:
1.Assert
const assert = require('assert');
assert(true); // OK
assert(1); // OK
assert(false);
// throws "AssertionError: false == true"
assert(0);
// throws "AssertionError: 0 == true"
assert(false, 'it\'s false');
// throws "AssertionError: it's false"
2.assert.deepEqual(actual, expected[, message])
const assert = require('assert');
const obj1 = {
a : {
b : 1
}
};
const obj2 = {
a : {
b : 2
}
};
const obj3 = {
a : {
b : 1
}
};
const obj4 = Object.create(obj1);
assert.deepEqual(obj1, obj1);
// OK, object is equal to itself
assert.deepEqual(obj1, obj2);
3.assert.assert.deepStrictEqual(actual, expected[, message]))
const assert = require('assert');
assert.deepEqual({a:1}, {a:'1'});
// OK, because 1 == '1'
assert.deepStrictEqual({a:1}, {a:'1'});
// AssertionError: { a: 1 } deepStrictEqual { a: '1' }
// because 1 !== '1' using strict equality
4.assert.doesNotThrow(block, error)
doesNotThrow予想が異なる場合、あるコードブロックがエラーを投げ出さないことを予想する
assert.doesNotThrow(
() => {
throw new TypeError('Wrong value');
},
SyntaxError
);
5.assert.equal(actual, expected[, message])
const assert = require('assert');
assert.equal(1, 1);
// OK, 1 == 1
assert.equal(1, '1');
// OK, 1 == '1'
assert.equal(1, 2);
// AssertionError: 1 == 2
assert.equal({a: {b: 1}}, {a: {b: 1}});
6.assert.fail(actual, expected, message, operator)
const assert = require('assert');
assert.fail(1, 2, undefined, '>');
// AssertionError: 1 > 2
assert.fail(1, 2, 'whoops', '>');
7.assert.ifError(value)
const assert = require('assert');
assert.ifError(0); // OK
assert.ifError(1); // Throws 1
assert.ifError('error'); // Throws 'error'
assert.ifError(new Error()); // Throws Error
8.assert.notDeepEqual(actual, expected[, message])
const assert = require('assert');
const obj1 = {
a : {
b : 1
}
};
const obj2 = {
a : {
b : 2
}
};
const obj3 = {
a : {
b : 1
}
};
const obj4 = Object.create(obj1);
assert.notDeepEqual(obj1, obj1);
// AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } }
assert.notDeepEqual(obj1, obj2);
// OK, obj1 and obj2 are not deeply equal
9.assert.notEqual(actual, expected[, message])
const assert = require('assert');
assert.notEqual(1, 2);
// OK
assert.notEqual(1, 1);
// AssertionError: 1 != 1
assert.notEqual(1, '1');
// AssertionError: 1 != '1'
10.assert.notStrictEqual(actual, expected[, message])
比較値、==に相当
const assert = require('assert');
assert.notDeepEqual({a:1}, {a:'1'});
// AssertionError: { a: 1 } notDeepEqual { a: '1' }
assert.notDeepStrictEqual({a:1}, {a:'1'});
// OK
11.assert.ok(value[, message])
OKはassertメソッドのもう一つの名前で、assertメソッドと全く同じです.
const assert = require('assert');
assert.ok(true); // OK
assert.ok(1); // OK
assert.ok(false);
// throws "AssertionError: false == true"
assert.ok(0);
// throws "AssertionError: 0 == true"
assert.ok(false, 'it\'s false');
12.assert.strictEqual(actual, expected[, message])
const assert = require('assert');
assert.strictEqual(1, 2);
// AssertionError: 1 === 2
assert.strictEqual(1, 1);
// OK
assert.strictEqual(1, '1');
// AssertionError: 1 === '1'
13.assert.throws(block, error)
assert.throws(
() => {
throw new Error('Wrong value');
},
Error
);
*nodejsの環境:
*参考資料https://nodejs.org/api/assert...