chai-bookshelf
对你的 bookshelf.js 模型进行断言。
安装
通过 npm 安装:npm install chai-bookshelf
注意使用快捷方式 –save-dev 很方便:npm install --save-dev chai-bookshelf
使用
var chai = require('chai');
chai.use(require('chai-bookshelf'));
断言
目前只支持关系的基本断言。
关系
通过进行直接的断言来移除代码中的样板代码。
支持的关系包括
- hasOne
expect(ClassA).to.haveOne(ClassB)
- hasMany
expect(ClassA).to.haveMany(ClassB)
- belongsTo
expect(ClassA).to.belongTo(ClassB)
- belongsToMany
expect(ClassA).to.belongToMany(ClassB)
基本示例
一个展示关系测试的基本示例
describe('User model', function() {
var User
, Thing
;
beforeEach(function() {
Thing = db.Model.extend({
tableName: 'things'
});
User = db.Model.extend({
things: function() {
return this.hasMany(Thing);
}
});
});
describe('Relationships', function() {
it('has many things', function() {
expect(User).to.haveMany(Thing);
})
});
});
指定属性名称示例
默认情况下,断言将使用表名的单数形式。如果属性的名称不是目标模型类的名称(例如,是复数),你需要指定表示关系的属性名称。
describe('User model', function() {
var User
, Thing
;
beforeEach(function() {
User = db.Model.extend({});
Thing = db.Model.extend({
owner: function() {
this.belongsTo(User);
}
});
});
describe('Relationships', function() {
it('has many things', function() {
expect(Thing).to.belongTo(User, 'owner');
})
});
});