egg.js 在 test 实例中 无法调用 service 中使用的 this.app.mysql.insert

发布于 2022-09-11 18:25:28 字数 646 浏览 11 评论 0

a.test.js

    it('添加 usermeta', async () => {
        // 创建 ctx
        const ctx = app.mockContext()
        // 通过 ctx 访问到 service.test
        const test = await ctx.service.test.insert()
        assert(test)
    })

service/a.js

    async insert() {
        console.log('test', this.app.mysql.insert) // undefined
        const result = await this.app.mysql.insert('table', {test:1})
        return result.affectedRows === 1
    }

error

TypeError: this.app.mysql.insert is not a function

如果在controller中是可以成功使用它的,但在test的情况下,mysql方法下没有insert

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

子栖 2022-09-18 18:25:28

unittest 环境中的数据库配置应该写到 config.default.js 中去。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文