柴东西 - 全面的should()方法列表

时间:2015-02-25 22:44:56

标签: javascript chai

我正在寻找一个完整的方法列表,您可以使用chai-thing库为chai.js调用装饰对象 所以,例如:

myObject.should.METHOD_NAME。

在上述声明中可以调用的所有有效METHOD_NAME都是什么。如果有效的方法名称基于对象类型,是否有一个表列出了每种对象类型可用的方法?

例如,以下是一些可用的方法:

  • 变化
  • 变化
  • 包含
  • 包含
  • 减少
  • 减少
  • 包括
  • 包括
  • 增加
  • 增加
  • 长度
  • EQL

这是另一个例子,如果你打电话'增加'在一个数组断言上你得到一个错误,而如果你打电话给'#39;包含'没关系。我正在寻找描述这些规则的文档。 enter image description here

感谢

1 个答案:

答案 0 :(得分:2)

should的所有方法都可以在" Expect / Should"下的文档中找到。 (http://chaijs.com/api/bdd/),例如here's the docs for contain (which is an alias of .include)

  

.INCLUDE(值)

     

@param {Object |字符串|号码} obj

     

@param {String} message_optional _

     

include和contains断言既可以用作基于属性的语言链,也可以用作断言在数组中包含对象或在字符串中包含子串的方法。当用作语言链时,它们切换键断言的包含标志。

expect([1,2,3]).to.include(2);
expect('foobar').to.contain('foo');
expect({ foo: 'bar', hello: 'universe' }).to.include.keys('foo');

文档使用expect(foo).to...语法显示示例,但expect(foo).to.foo.should完全可以互换。

如果您愿意,还可以查看源代码 - 所有核心断言都在一个文件中; chai/lib/core/assertions.js - 它们是使用addMethod构建的,但每个都附带了文档(文档用于生成网站),因此应该很容易阅读。

每个方法都可以从.should获得 - 但是有一些特殊的"属性"为了帮助形成英语句子的近似值,他们不做任何事情,但他们可以用来链接断言 - 这些是

  • ,其
  • 具有
  • 有无
  • 相同

(所以如果你真的想,你可以写'a'.should.to.be.been.is.that.which.and.has.have.with.at.of.same.equal('a') - 这与'a'.should.equal('a')具有相同的效果)