chai-bookshelf

針對您的 bookshelf.js 模型進行斷言。

Build Status

安裝

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