Sequelize Mock 无法与 Sequelize 函数一起正常工作 "count"
Sequelize Mock doesn't work properly with Sequelize function "count"
当我在这样的查询之间使用 Sequelize Mock 时:
const {
active,
'in-progress': inProgress,
} = await ImmediateCare.findAll({
raw: true,
attributes: ['status', [fn('count', col('id')), 'count']],
group: ['ImmediateCare.status'],
}).then((status) => {
const counts = {
active: 0,
'in-progress': 0,
}
status.forEach((s) => {
counts[s.status] = parseInt(s.count, 10)
})
return counts
})
正在返回 NaN
,我猜这是因为 Sequelize Mock 无法模拟 sequelize.fn('count')
对吗?
您可以将 Sinon 与 Sequelize Mock 一起使用,并使用模拟数据存根 findAll 调用。
像这样:
const sinon = require('sinon');
const SequelizeMock = require('sequelize-mock');
describe('', () => {
beforeEach(() => {
const dbConnection = new SequelizeMock();
const dbStub = sinon.stub(dbConnection, 'define');
const queryStub = sinon.stub().resolves(mockImmediateCareData);
dbStub.returns({ findAll : queryStub })
})
})
如果这没有帮助,你能分享定义的模拟对象吗?
此外,不需要 .then()
,因为已经在使用 await。
我走错了路
这是方法的测试。
我不应该测试 Sequelize 计数响应,我只需要模拟结果
当我在这样的查询之间使用 Sequelize Mock 时:
const {
active,
'in-progress': inProgress,
} = await ImmediateCare.findAll({
raw: true,
attributes: ['status', [fn('count', col('id')), 'count']],
group: ['ImmediateCare.status'],
}).then((status) => {
const counts = {
active: 0,
'in-progress': 0,
}
status.forEach((s) => {
counts[s.status] = parseInt(s.count, 10)
})
return counts
})
正在返回 NaN
,我猜这是因为 Sequelize Mock 无法模拟 sequelize.fn('count')
对吗?
您可以将 Sinon 与 Sequelize Mock 一起使用,并使用模拟数据存根 findAll 调用。 像这样:
const sinon = require('sinon');
const SequelizeMock = require('sequelize-mock');
describe('', () => {
beforeEach(() => {
const dbConnection = new SequelizeMock();
const dbStub = sinon.stub(dbConnection, 'define');
const queryStub = sinon.stub().resolves(mockImmediateCareData);
dbStub.returns({ findAll : queryStub })
})
})
如果这没有帮助,你能分享定义的模拟对象吗?
此外,不需要 .then()
,因为已经在使用 await。
我走错了路
这是方法的测试。
我不应该测试 Sequelize 计数响应,我只需要模拟结果