【问题标题】:How to mocha test as an auth0 user on expressjs app?如何在 expressjs 应用程序上以 auth0 用户身份进行 mocha 测试?
【发布时间】:2015-07-01 21:36:26
【问题描述】:

对不起,新手问题,我还是摩卡的新手。我有一个现有的应用程序,我的任务是创建一个 mocha 测试用例。此应用程序使用passport-auth0passport 进行用户登录。如何编写 mocha 测试,以便我可以以虚拟用户身份登录以测试受限功能?

【问题讨论】:

  • 请告诉我们 Mocha 是如何给您带来问题的。如果您在不使用 Mocha 时能够以虚拟用户身份登录,那么您应该也可以使用 Mocha 进行登录。

标签: express mocha.js passport.js auth0


【解决方案1】:

由于 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 很有用。

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    相关资源
    最近更新 更多