1

我的问题是尝试对 Waterline 模型进行 TDD。我提供的测试只是构建我的套件的样板。然而,它们提出了有效的问题。主要问题是我需要 Vows.js 测试中的模型。在测试范围内定义了模型,但它没有从 Waterline 包继承的任何属性。例如,这里是“EducationLevel”的一些模型代码:

module.exports = {
  migrate: 'safe',
  tableName: 'education_levels',
  attributes: {
    id : { type: 'integer', required: true },
    description: { type: 'string', required: true },
    display_sort: { type: 'integer', required: true}
  }
};

这里有一些试验测试:

vows = require('vows')
assert = require('assert')
EducationLevel = require('../api/models/EducationLevel')

vows.describe('tac_models').addBatch({
  'EducationLevel model' : {
    topic: function(){
      educationLevel = EducationLevel.create();
      return true;
    },
    'It exists': function (topic) {
      assert.equal(EducationLevel.create,undefined);
      assert.equal(EducationLevel.migrate,undefined);
    }
  }
}).export(module)

当我运行测试时,第一个断言通过了,但第二个没有:

 vows spec/*
 ✗  


    EducationLevel model 
      ✗ It exists 
        » expected undefined, 
    got  'safe' (==) // tac_models.js:13 
  ✗ Broken » 1 broken (1.545s) 

这表明测试只知道 EducationLevel 定义中明确声明的内容。定义了“迁移”属性是因为我在代码中明确定义了它。它不知道 Waterline 方法“创建”。我怎样才能以使传统 TDD 实用的方式来解决这个问题?

4

0 回答 0