2016-12-08 28 views
2

我想爲我的Node.js API編寫自動化測試,並且我已經開始使用Mocha和Chai,使用chai-http來管理請求。如何正確測試具有身份驗證的RESTful API

我已經有了一個通往www.example.com/users的路線,並且已經成功地編寫了自動化測試來註冊用戶並登錄用戶,所以我以爲我在路上,但現在幾乎所有的其他路由需要用戶進行身份驗證!由於我在測試過程中嘲笑數據庫(使用mongoose使用mockgoose),我已經注意到了這種依賴關係。但是,這帶來了一個問題,我如何獲得一個用戶身份驗證,但仍然不會暴露我的測試多個,可能會改變的代碼段?

程序流程相對簡單:在請求安全資源時,會有中間件對用戶進行身份驗證,然後將一個對象附加到請求上。那麼user對象就可以讓路由訪問用戶的信息並調用數據庫。

所以,我想一個理想的解決方案將附加一個user對象的請求對象,一旦調用了API。

由於我相對較新的測試,我會歡迎任何反饋,讓我洞察到更好的測試程序。

回答

0

我已經完成了這項任務,利用摩卡提供的beforeEach掛鉤。其中,我調用一個叫做seedDB的函數,它嘲笑數據庫並返回一個包含我需要的所有信息的對象。 seedDB函數實際上發佈到API以執行諸如註冊用戶和登錄之類的事情,然後使user對象和token都可供我的測試通過該對象訪問。到目前爲止,它的結果非常好,因爲當我在API /驗證路徑中更改內容時,測試會自動響應這些更改。