1
對不起,有一個新手問題,我對摩卡還是個新手。我有一個現有的應用程序,我負責創建一個摩卡測試用例。這個應用程序使用passport-auth0
和passport
用戶登錄。如何寫摩卡測試,以便我可以登錄爲虛擬用戶來測試受限功能?如何在expressjs應用上作爲auth0用戶進行摩卡測試?
對不起,有一個新手問題,我對摩卡還是個新手。我有一個現有的應用程序,我負責創建一個摩卡測試用例。這個應用程序使用passport-auth0
和passport
用戶登錄。如何寫摩卡測試,以便我可以登錄爲虛擬用戶來測試受限功能?如何在expressjs應用上作爲auth0用戶進行摩卡測試?
由於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是有用的。
請告訴我們摩卡是如何造成你的問題。如果您在不使用摩卡咖啡時能夠以虛擬用戶身份登錄,那麼您也應該可以使用摩卡咖啡。 – Louis