chai-generator NPM 版本 构建状态

这是一个针对 chai 的插件,用于简化对 ES6 / ES2015 中引入的 Javascript 生成器的测试。

由于生成器的 yield / return 签名有点含糊,会导致测试过于冗长。

expect(generator.next()).to.deep.equal({ done: false, value: 15 })
expect(generator.next()).to.deep.equal({ done: true, value: -1 })

chai-generator 去掉了这些麻烦,让您的测试看起来更符合您的意图。

expect(generator).to.yield(15)
expect(generator).to.return(-1)

设置

node.js / io.js

var chai = require('chai')
chai.use(require('chai-generator'))

浏览器

<script src="chai.js"></script>
<script src="chai-generator.js"></script>

断言

.yield

断言从 generator.next() 中 yield 了一个值。返回值不被视为 yield 值。

expect(generator).to.yield()
expect(generator).to.yield(1)
expect(generator).not.to.yield('missing')
expect(generator.next(10)).to.yield(10)

generator.should.yield()
generator.should.yield(1)
generator.should.not.yield('missing')
generator.next(10).should.yield(10)

assert.yield(generator, 1)
assert.notYield(generator, 'missing')
assert.yield(generator.next(10), 10)

.yield.deep 链一起工作。

expect(generator).to.deep.yield([1, 2, 3])
generator.should.deep.yield([1, 2, 3])
assert.deepYield([1, 2, 3])

.yield 也可以与其他断言一起链接(在 assert 中不可用)。

expect(generator).to.yield().and.equal(1)
generator.should.yield().and.equal(1)

.return

断言从 generator.next() 中返回了一个值。yield 值不被视为返回值。

expect(generator).to.return()
expect(generator).to.return(1)
expect(generator).not.to.return('missing')
expect(generator.next(10)).to.return(10)

generator.should.return()
generator.should.return(1)
generator.should.not.return('missing')
generator.next(10).should.return(10)

assert.return(generator)
assert.return(generator, 1)
assert.notReturn(generator, 'missing')
assert.return(generator.next(10), 10)

.return.deep 链一起工作。

expect(generator).to.deep.return([1, 2, 3])
generator.should.deep.return([1, 2, 3])
assert.deepReturn([1, 2, 3])

.return 也可以与其他断言一起链接(在 assert 中不可用)。

expect(generator).to.return().and.equal(1)
generator.should.return().and.equal(1)

许可

chai-generator 采用 MIT 许可证 发布。