代码之家  ›  专栏  ›  技术社区  ›  Pavlo Zhukov

创建临时帆模型

  •  1
  • Pavlo Zhukov  · 技术社区  · 7 年前

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

    模型结构示例

    //User.js - my model
    module.exports = {
    
      attributes: {
    
        firstName : { type: 'string' },
    
        lastName : { type: 'string' },
    
    
        getName: function () {
          return this.firstName + ':' + this.lastName;
        }
      }
    };
    

    我有下一个目标

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

    此行在db中创建新记录

    User.create(testData);
    

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   Glen    7 年前

    要回答您最初的问题,请使用以下功能:在调用模型时,关闭或打开Sails是否实际在数据库中创建记录。据我所知,如果没有您或我在评论中描述的解决方法,create()是不存在的。

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

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

    如果您使用的是Sails版本的<v1 see documentation :

    在config/connection中添加到数据库的连接。js公司

    localDiskDb: {
        adapter: 'sails-disk'
    },
    

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

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

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

    相反,在配置/数据存储中添加sails磁盘作为数据存储。js公司

    localDiskDb:{
    适配器:“sails磁盘”
    },
    

    在您正在测试的模型中,如上所述,将模型指向sails磁盘数据存储。

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