创建临时风帆模型

Create temp sails model

对于单元测试,我需要创建临时模型 object 而不将其保存在数据库中,只是为了有一些实例方法。

模型结构示例

//User.js - my model
module.exports = {

  attributes: {

    firstName : { type: 'string' },

    lastName : { type: 'string' },


    getName: function () {
      return this.firstName + ':' + this.lastName;
    }
  }
};

我有下一个object

const testData = {
    firstName: 'Foo',
    lastName: 'Bar'
};

这一行在数据库中创建新记录

User.create(testData);

是否可以避免创建记录?我该怎么做?

为了回答您最初的问题,据我所知,当您调用 Model.create() 时关闭或打开 Sails 是否实际在您的数据库中创建记录的功能不存在,没有解决方法你有或者我已经在评论中描述了。

话虽如此,Sails 确实为测试和开发目的提供了一个简单的解决方案。

为了方便开发,Sails 提供了一个名为 sails-disk 的 built-in 数据库适配器。此适配器通过将数据库记录读取和写入计算机硬盘驱动器上的 JSON 文件来模拟真实数据库。

如果您使用的是 see documentation:

在config/connection.js

中添加到数据库的连接
localDiskDb: {
    adapter: 'sails-disk'
},

在您正在测试的模型中,将模型指向 sails-disk 连接。

...
module.exports = {
    connection: "localDiskDb",

    attributes: {
...

如果您使用的 Sails 版本 >= v1 see documentation:

相反,在 config/datastores.js

中添加 sails-disk 作为数据存储
localDiskDb: {
    adapter: 'sails-disk'
},

并且在您正在测试的模型中,如上所述,将模型指向 sails-disk 数据存储。

...
datastore: 'localDiskDb',
...