【发布时间】:2021-09-25 21:38:13
【问题描述】:
我有下面提到的文件
|_ utils.js |_methods.js
我正在对rest.js方法进行单元测试,文件内容是
methods.js
import Express from 'express'
import { add_rec } from './utils'
export const create_rec = () => async (req: Express.Request, res: Express.Response) => {
const rec_body = req.body.rec
return add_rec(rec_body)
.then((ret) => res.status(201).send(ret))
.catch((e) => {
res.status(500).send({ message: e.message })
})
}
如何模拟 add_rec 异步函数,以便我可以对我的 create_rec 进行单元测试 功能
我正在尝试以下面的方式测试 create_rec,但它不允许我模拟 add_rec 方法
mport { getMockReq, getMockRes } from '@jest-mock/express'
import { add_rec } from './utils'
jest.mock('./utils')
describe('test create_rec method valid param', () => {
it('test create_rec method', async () => {
const req = getMockReq({
body: {
rec: {},
},
})
const { res } = getMockRes<any>({
status: jest.fn(),
send: jest.fn(),
})
add_rec.mockResolved({}) // this line is giving error in fact it is not mocked i think
await create_rec()(req, res)
expect(res.status).toHaveBeenCalledTimes(1)
expect(res.send).toHaveBeenCalledTimes(1)
})
})
请帮帮我。
【问题讨论】:
标签: node.js typescript express unit-testing jestjs