[NODE之9]assert模块

来源:互联网 发布:mac book 多少钱 编辑:程序博客网 时间:2024/05/01 23:33
/**Assert练习 * Created by liyanq on 17/3/23. * Assert自带抛出异常功能~ */const assert = require("assert");/*assert(value[, message]) * assert(true);// 通过 * assert(1);// 通过 * assert(false);//不通过 * assert(0);//不通过*/try {    assert(false, "我是错误信息~");}catch (e) {    console.log(e.message);}/*----------------------------------------------------------------------------------*//*assert.deepEqual(actual, expected[, message]) * 测试 actual 参数与 expected 参数是否深度相等。 原始值使用相等运算符(==)比较 * 注意:对象间的比较不管==还是===都是比较地址,如果地址一样就相等*/try {    var objDeepEqual1 = new Object("hello");    var objDeepEqual2 = new Object("hello");    objDeepEqual2.age = 33;    assert.deepEqual(objDeepEqual1, objDeepEqual2,"deepEqual两个对象深度比较");//}catch (e) {    console.log(e.message);}/*assert.deepStrictEqual(actual, expected[, message])* 相当于对象间的===*/try {    assert.deepStrictEqual({a:"1"},{a:1},"deepStrictEqual比较很严格~~")}catch (e){    console.log(e.message);}/*----------------------------------------------------------------------------------*//*assert.doesNotThrow(block[, error][, message])* 如果抛出错误且错误类型与 error 参数指定的相同,则抛出 AssertionError。* 如果错误类型不相同,或 error 参数是 undefined,则错误会被抛回给调用者。*/try {    assert.doesNotThrow(        () => {            throw new TypeError('错误');        },        TypeError,        '抛出错误'    );}catch (e){    console.log(e.message);}/*assert.equal(actual, expected[, message])* 相当于==,如果应用到对象,那么比较的是地址* assert.strictEqual(actual, expected[, message])* 相当于===,如果应用到对象,那么比较的是地址*/try {    assert.equal({a:1},{a:1},"equal比较的是地址");}catch (e){    console.log(e.message);}/*assert.ifError(value):function(err) { if (err) throw err; };* 如果 value 为真,则抛出 value。 可用于测试回调函数的 error 参数。* 说白了就是判断异常对象,如果是的话,抛出异常信息,如果不是且true,抛出undefined,否则没动静~~*/try {    // assert.ifError("error");//undefined    assert.ifError(new Error("ifError的error"));//ifError的error}catch (e){    console.log(e.message);}/*assert.notDeepEqual(actual, expected[, message])* 测试是否不深度相等。 与 assert.deepEqual() 相反。*//*assert.notDeepStrictEqual(actual, expected[, message])* 测试是否不深度全等。 与 assert.deepStrictEqual() 相反。*//*assert.notEqual(actual, expected[, message])* 使用不等运算符(!=)测试是否不相等*//*assert.notStrictEqual(actual, expected[, message])* 使用不全等运算符(!==)测试是否不全等。*//*assert.ok(value[, message])* 测试 value 是否为真值。 相当于 assert.equal(!!value, true, message)。*//*----------------------------------------------------------------------------------*//*assert.throws(block[, error][, message])* 如果指定了 message,则当 block 不抛出错误时,message 会作为 AssertionError 的错误信息。* 如果指定了 error,error 可以是构造函数、正则表达式、或自定义的验证函数* 应该这么做。* assert.throws(myFunction, /错误/, '没有抛出期望的信息');*/try{    assert.throws(        () => {            throw new Error('错误信息');//这个函数里面没异常抛出的话,assert.throws就直接抛出"不是期望的错误"        },        function(err) {            // err instanceof Error =>true            // /错误/.test(err.message)=>true  /错误/能匹配上"错误信息"            if ((err instanceof Error) && /错误/.test(err.message)){                return true;//吸收错误了~~;false的话,继续抛出            }        },        '不是期望的错误'    );}catch (e){    console.log(e.message);}
http://nodejs.cn/api/assert.html
0 0
原创粉丝点击