【发布时间】:2021-11-26 21:55:49
【问题描述】:
我已经使用 sequelize-auto 包创建了我的模型并在我的控制器中使用了它们
const sequelize = require('../database/db');
var models = require("../models/init-models").initModels(sequelize);
var User = models.User;
const controllerMethod = async (req,res,next) => {
//calls User.findAll() and returns the results
}
我在我的控制器方法之一中调用了 User 模型的 findAll 函数
我想使用 Jest 测试我的控制器方法,并想模拟 findAll 函数以返回一个空对象。 我已经在测试文件中导入了我的模型并模拟了 findAll 函数,如下所示,
//inside test case
models.User.findAll = jest.fn().mockImplementation(() => {
return {}
});
const spy = jest.spyOn(models.User, "findAll")
await controllerMethod(req, res,next);
我的问题是,当我运行测试用例时,它会在控制器内部运行实际的 findAll() 函数,而不是模拟的 findAll()
即 findAll() 返回实际数据而不是 {}
任何帮助将不胜感激
提前致谢
【问题讨论】:
标签: node.js jestjs sequelize.js sequelize-auto