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

2024-07-22 677 views
4

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

回答

2

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

8

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

5

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

2

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

1

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

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

4

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

7

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