为什么should.js中的“should.strictEqual”不起作用?

时间:2012-05-31 13:31:07

标签: mocha should.js

根据should.js Spec,这应该有效:

should.strictEqual(shape.code, code)

但我明白了:

TypeError: Object #<Object> has no method 'strictEqual'

我错过了什么?

2 个答案:

答案 0 :(得分:2)

在文档中看起来像是一个错误。 equal被定义为in the script为“严格平等”:

/**
 * Assert strict equal.
 *
 * @param {Mixed} val
 * @param {String} description
 * @api public
 */

equal: function(val, desc){
  this.assert(
      val.valueOf() === this.obj
    , 'expected ' + this.inspect + ' to equal ' + i(val) + (desc ? " | " + desc : "")
    , 'expected ' + this.inspect + ' to not equal ' + i(val) + (desc ? " | " + desc : "")
    , val);
  return this;
},

...并且strictEqual未出现在脚本中。

答案 1 :(得分:1)

Should.js提供 .equal ()来检查身份(===), .eql ()检查是否相等(==)。< / p>

参考: https://github.com/visionmedia/should.js/blob/9feffef939197002ce16708c27036f7f744e8131/lib/should.js#L277-L309