Sequelize Mock尝试进入数据库连接

时间:2019-06-25 15:43:16

标签: sequelize.js

我们正在使用sequelize模拟库来模拟数据库连接,我们已经完成了模拟模型的代理要求,但似乎正在尝试建立与实际数据库的连接。

我们需要做的任何设置以使用sequelize库来模拟sequelize库。

理想情况下,它应该完全忽略数据库。

1 个答案:

答案 0 :(得分:0)

来自https://github.com/facebook/jest/issues/1937#issuecomment-462543444

您有a.js,要求b.jsc.js。同时c.js也将需要b.js。并且您在嘲笑b.js。因此proxyquire将仅模拟{strong> b.js所需的a.js

您可能有一个Javascript文件,需要使用sequelize库而不是sequelize-mock。

jest.mock将模拟任何 b.js,可在任何地方使用。

下面的示例来自 https://github.com/kvr2277/sequelize-mock-jest/blob/master/src/test/UserDAO.spec.js,展示了如何使用笑话和sequelize-mock:

let UserDAO = require('../main/daos/UserDAO');

jest.mock('../main/models/USER', () => () => {
  const SequelizeMock = require("sequelize-mock");
  const dbMock = new SequelizeMock();
  return dbMock.define('user',  {
    userId: 2,
    emailId: 'xyz@abc.com',
    firstName: 'good',
    lastName: 'day',
    creTs: "2019-01-01 13:30:31",
    creUserId: 'dummy'
  })
});


describe("Test Sequelize Mocking", () => {  
  it("Should get value from mock", async () => {
    const user = await UserDAO.getOneUser();
    expect(user.firstName).toEqual('good');
  })
})