抱歉新手问题,我还是摩卡新手。我有一个现有的应用程序,我的任务是创建一个摩卡测试用例。此应用使用passport-auth0
和passport
进行用户登录。如何编写mocha测试,以便我可以作为虚拟用户登录来测试受限制的函数?
答案 0 :(得分:3)
由于Passport使用可以交换的策略,因此一种选择是在运行测试时使用mock来代替实际的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很有用。