[eggjs/egg]单体测试时如何mock一个model增删改操作的返回值

2024-07-22 773 views
7

请问,单元测试时如何mock一个model增删改操作的返回值

回答

3

谢谢回答,我用的是sequelize,我在app\stub\model\user.js里加入exports.findAll = () => 'stub fn'; 但是,执行npm run test-local后还是从数据库中查询数据。plugin.js里已经启用了这个插件。 请问是什么原因。

7

不确定,要看下我给的库的源码,有可能是 sequelize 的挂载跟它不 match

4

谢谢,我用sinon模拟model的方法了。

7

我还想问一下,单元测试时,怎样可以让sequelize不链接DB。

9

config.unittest.js 改下 sequelize 配置看看。

甚至你可以在 plugin.unittest.js 里面不开启 sequelize 插件,然后直接 mockContext 时加上 ctx.model 自己搞

9

egg-sequelize 是不是不支持sqlite,我按照sequelize官网上设置了一下,没有成功。

9

我在单元测试的时候用sqlite数据库,这样就没问题了。谢谢帮助。