测试功能时替换变量的值

时间:2019-08-12 06:19:17

标签: node.js testing mocha chai

我有一条记录用户数据并提供唯一标识符的路由。

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

如何测试路线?

1 个答案:

答案 0 :(得分:1)

要更改serviceSidVerification()的行为,可以使用sinon。如果决定采用这种方式,则必须在测试文件+ sinon所在的模块中要求serviceSidVerification。然后,在执行测试之前,您必须执行以下操作:

const stubServiceSidVerification = sinon.stub(yourModule, 'serviceSidVerification')
    .returns('yourValue');

请注意,如果使用sinon,则serviceSidVerification应该作为对象的属性而不是作为独立函数导出,因为此issue

另一种选择是使用proxyquire