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

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

阅读 4.5k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题