对不起一个新手问题,我还是摩卡的新手。我有一个现有的应用程序,我的任务是创建一个 mocha 测试用例。这个应用程序使用passport-auth0
和passport
用户登录。如何编写 mocha 测试,以便我可以以虚拟用户身份登录以测试受限功能?
问问题
748 次
1 回答
3
由于 Passport 使用可以交换的策略,因此一种选择是auth0
在运行测试时使用模拟来代替实际策略。这看起来像:
function MockStrategy() {
}
MockStrategy.prototype.authenticate = function(req) {
self.success({ id: 1, username: 'joe' );
}
// In test setup, mock out the strategy with one that returns
// dummy data.
passport.use('auth0', new MockStrategy());
现在您可以编写测试用例,其中req.user
将始终joe
由模拟策略提供。您可以以类似的方式扩展它以涵盖身份验证失败。
这是我的首选方法,因为它的侵入性最小。根据应用程序代码的结构方式,可能存在其他需要并需要模拟的依赖项。对于这些情况,我发现proxyquire很有用。
于 2015-04-27T16:30:59.040 回答