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');
})
});
});