nodejs断言中等于(),strictEqual (), deepEqual (), strictDeepEqual()比较

  

1,等于()

  

=(实际预期[信息])

  

相当于使用==运算符比较两个参数值实际和预期是否相等,如果相等不返回任何值,如果不相等则返回带有消息属性的AssertionError,若消息为未定义,则为默认的错误信息。

        var断言=要求(“断言”);   assert.equal(' 1 ', ' 1 ');//通过' 1 '==' 1 '   assert.equal(' 1 ', 1);//通过,' 1 '==1   assert.equal(“问”,“问”);//通过   assert.equal (“abc”,“abc”);//通过   assert.equal (a, b);//不通过,抛出AssertionError   assert.equal([1,2],[1,2]);//不通过,不能比较数组   assert.equal({:“字符串”},{答:“字符串”});//不通过,不能比较json数据等      

==运算符只是数值相等,并不比较类型相等
  等于()方法不能比较数组,json等数据类型的数据,换句话说即不进行深度比较,数组和json数据的子对象不进行比较。
  

  

<强> 2,strictEqual()

  

strictEqual(实际预期[信息])

  

从字面意思来看,就是相等的()方法的严格版本,相当于===全等运算符,不仅比较数据值是否相等,还比较数据类型是否相同。跟等于()方法最大的不同就是这点。

        var断言=要求(“断言”);   assert.strictEqual(' 1 ', 1);//不通过   assert.strictEqual(1,1);//通过   assert.strictEqual (' a ', ' a ');//通过   assert.equal (“abc”,“abc”);//通过   assert.equal (a, b);//不通过,抛出AssertionError   assert.equal([1,2],[1,2]);//不通过,不能比较数组   assert.equal({:“字符串”},{答:“字符串”});//不通过,不能比较json数据等      

可以看的到,这跟等于()方法得出的结果是不同的,比较要严格一些,其他地方都相同。

  

<强> 3 deepEqual()

  

deepEqual(实际预期[信息])

  

前面不管是相等的()方法还是strictEqual()都不能进行深度比较,对数组或者json数据格式的数据不能比较相同与否,使用此方法将可以完美解决这个问题。

        var断言=要求(“断言”);   assert.deepEqual([1,2],[1,2]);//通过,数组比较   assert.deepEqual({答:' 1 '},{答:' 1 '});//通过   assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通过,多维数组   assert.deepEqual({答:{b: 1}}, {: {b: 1}});//通过   assert.deepEqual(1, ' 1 ');//通过   assert.deepEqual([1],[1]);//通过      

deepEqual()方法能够比较数组和json等数据,也能比较一般数据,能够进行更为深层次的数据比较。
  deepEqual()方法比较并不严格,相当于==等于符号,只比较数值,不比较类型

  

<强> 4 strictDeepEqual()

  

strictDeepEqual(实际预期[信息])
  跟strictEqual()方法相似,相当于===全等运算符,不同的是能够比较数组,json数据等深层的数据。

        var断言=要求(“断言”);   assert.deepEqual([1,2],[1,2]);//通过,数组比较   assert.deepEqual({答:' 1 '},{答:' 1 '});//通过   assert.deepEqual([[1,2],[2]],[[1,2],[2]]);//通过,多维数组   assert.deepEqual({答:{b: 1}}, {: {b: 1}});//通过   assert.deepEqual(1, ' 1 ');//不通过,类型错误   assert.deepEqual([1],[1]);//不通过,类型错误      

deepStrictEqual()方法比deepEqual()更为严格,其他都相同。都能进行深层比较。

  

<强> 5其他方法

  

断言模块中还有很多其他很有用的方法,下面列举几个,具体的请看

  

Nodejs API   

assert.notEqual(实际预期[信息])
  assert.notStrictEqual(实际预期[信息])
  assert.ifError(值)
  assert.fail(消息)

nodejs断言中等于(),strictEqual (), deepEqual (), strictDeepEqual()比较