我有一条记录用户数据并提供唯一标识符的路由。
date-fns
我想为此路线编写测试。我需要用自己的函数替换router.post('/', (req, res) => {
const user_email = req.body.user_email;
const username = req.body.username;
const user_phone = req.body.user_phone;
const service_sid = serviceSidVerification(user_phone);
const entry_id = uuidv4();
const user = new User(
username,
user_email,
user_password,
user_phone,
entry_id,
service_sid,
);
await db.query(user.setUser());
return res.status(200).json({
entry_id: entry_id,
});
});
函数的返回值。例如,serviceSidVerification()
。如何通过测试完成?
这就是我的测试结果。
12345
如何测试路线?
答案 0 :(得分:1)
要更改serviceSidVerification()
的行为,可以使用sinon。如果决定采用这种方式,则必须在测试文件+ sinon
所在的模块中要求serviceSidVerification
。然后,在执行测试之前,您必须执行以下操作:
const stubServiceSidVerification = sinon.stub(yourModule, 'serviceSidVerification')
.returns('yourValue');
请注意,如果使用sinon
,则serviceSidVerification
应该作为对象的属性而不是作为独立函数导出,因为此issue。
另一种选择是使用proxyquire。