首页 > 解决方案 > 任何模块都有助于用 jest 测试 sequelize 模型

问题描述

我正在对 sequelize (5.x) 模型进行单元测试。以下是Group模型示例:

class Group extends Model {};
Group.init({
    name: {type: Sql.STRING,
          validate: {
            len:{
              args:[1,50],
              msg:"Name between 1 to 50 chars"
            } ,
          }
    },
    owner_id: {
      type: Sql.INTEGER,
      allowNull:false,
      validate: {
        isInt: true,
      },
    },   
    status: {type: Sql.STRING,
             validate: {
              isIn: [['active', 'inactive']],
             },

    },
    group_data: {
        type: Sql.JSONB
    },
    last_updated_by_id: {type: Sql.INTEGER},
    },
    createdAt: Sql.DATE,
    updatedAt: Sql.DATE
  }, {
    sequelize:db,
    modelName: 'group',
    indexes: [
      { 
        fields: ['name', 'owner_id']
      }, {
        fields: ['owner_id', 'status']
      }, {
        fields: ['owner_id']
      }, {
        fields: ['status']
      }
    ]   

  });

这是我正在做的测试:

it("shall create a group", () => {
        expect(async () => {await Group.create(payload)}).not.toThrow;  //payload is defined before test

    })

但是当测试调用与数据库的连接时,测试会导致数据库连接回调的错误。

有一个模块sequelize-test-helper可以很好地进行模型测试,但需要Mocha框架。我广泛搜索了一个类似的笑话助手模块但无济于事。有没有我可以用来帮助单元测试续集模型的模块?或者我应该如何开玩笑地对续集模型进行单元测试?我发现很少有关于 jest with sequelize model 的信息。

标签: unit-testingjestjssequelize.js

解决方案


推荐阅读