嗨,这不是在邀请您喝杯茶,这个柴不是一杯热的给你们😉!
那么,我们在这里说什么柴呢柴呢??? ..
该Chai是一个期望库,有助于对javaScript代码执行各种断言。
如何开始使用它?
使用您喜欢的任何测试框架,Chai可用于node.js和浏览器。
对于node.js:npm install chai
建议使用*作为版本标记将其添加到package.json devDependencies中。 这将确保您在运行npm install之后始终拥有最新版本,当与持续集成工具配对时,该版本特别强大。
"devDependencies": {
"chai": "*",
"mocha": "*"
}, "//": "mocha is our preference, but you can use any test runner you like"
对于浏览器,请在您的测试套件中包含chai浏览器版本。
</script
Chai当前支持所有现代浏览器:IE 9 +,Chrome 7 +,FireFox 4 +,Safari 5+。
Chai API按样式或任务细分。
断言样式:
- Expect / Should API涵盖了BDD断言样式。
- Assert API涵盖了TDD断言样式。
BDD样式,Expect和应该使用相同的链来创建断言,但是它们在初始构造断言的方式上有所不同。
例如, Expect断言如下:
var expect = require('chai').expect
, foo
= 'drink'
, beverages
= { tea: [ 'chai', 'matcha', 'oolong' ] };
expect(foo).to.be.a('string');
expect(foo).to.equal('drink');
expect(foo).to.have.lengthOf(3);
expect(beverages).to.have.property('tea').
with .lengthOf(3);
对于Should,它将使用should属性扩展每个对象以启动链,并通过以下方式进行断言:
var should = require('chai').should() //actually call the function , foo
= 'drink'
, beverages
= { tea: [ 'chai', 'matcha', 'oolong' ] };
foo.should.be.a('string');
foo.should.equal('drink');
foo.should.have.lengthOf(3);
beverages.should.have.property('tea').
with .lengthOf(3);
两者之间有什么区别吗?
是的,他们不一样! expect require只是对expect函数的引用,而使用should require时,该函数正在执行。
expect接口提供了作为链接语言断言的起点的功能。
should接口扩展了Object.prototype以提供单个getter作为您的语言断言的起点。
目前仅此而已,赶快抓住大家吧! 🙂