我正在寻找一个完整的方法列表,您可以使用chai-thing库为chai.js调用装饰对象 所以,例如:
myObject.should.METHOD_NAME。
在上述声明中可以调用的所有有效METHOD_NAME都是什么。如果有效的方法名称基于对象类型,是否有一个表列出了每种对象类型可用的方法?
例如,以下是一些可用的方法:
这是另一个例子,如果你打电话'增加'在一个数组断言上你得到一个错误,而如果你打电话给'#39;包含'没关系。我正在寻找描述这些规则的文档。
感谢
答案 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')
具有相同的效果)