2013-02-02 88 views
3

我正在使用Mongoose在ExpressJS中編寫一個小型的REST API。我已經編寫了應用程序內部所有邏輯的單元測試。 現在唯一沒有測試的東西就是如果API返回適當的狀態代碼並且受限制的資源實際上受到限制。爲REST api編寫測試NodeJS MongoDB

我迄今爲止嘗試:

我試圖用Request執行GET/POST/PUT/DELETE上的資源,但我覺得很笨拙扔東西到數據庫,不斷引用到對象並稍後再刪除它。

這是接近這個最聰明的方法嗎?如果我需要使用實際的數據庫通過實際請求來測試某些內容,那麼我的實現錯

如果這是測試API的首選方式,是否有必要將內部功能測試爲完整解決方案,還是應該只測試狀態代碼和訪問權限。

回答

3

我們通常會創建一個測試數據庫,並使用NODE_ENV ='test'...來運行測試,這會觸發與測試數據庫的連接。

這樣你就可以擦拭測試數據庫沒有問題,你不必擔心在測試之前/之後進行清理。

爲REST測試一個有用的工具是SuperAgent的(或supertest,但我更喜歡代理):

全面披露:我是一個貢獻者的SuperAgent。

+0

謝謝!我已經嘗試過,但如果這是最常見的,我會再試一次。我會看看這些庫,它們看起來比請求更好。因此,對於要測試的內容,只需測試狀態代碼以及我可以訪問的內容,並忽略我作爲響應獲得的內容。還有什麼我應該測試? – kimpettersen

+0

我通常以如下方式測試每條路徑:1)黃金路徑,2)錯誤輸入,3)訪問不足 – hunterloftis

+0

再次感謝。這讓我走上了正確的軌道,超級競爭對手真棒! – kimpettersen