2017-02-21 64 views
1

我已經完成了一個包含20個測試通過的CRUD應用程序的構建。我使用EJS渲染視圖,現在我的測試出現問題。在摩卡中使用EJS測試渲染視圖

作爲一個簡單的例子,假設我正在檢查發現GET請求發送到'/'時,JSON將被髮送像res.json({message:'hello'})這樣我可以在Mocha中設置我的測試,以便res.body.message等同於'你好'。

但是,如果我想呈現index.ejs頁面而不是發送JSON,該怎麼辦。所以它看起來像res.render('index',{message:'hello'})。我如何測試res.render()?或者更具體地說,我如何測試傳遞給res.render()的對象?

編輯:這個問題(並且這樣的問題)的溶液可通過使用稱爲功能測試測試範例來解決。去谷歌上查詢。

回答

1

要測試http 獲得基本上可以理解爲需要測試路由。 所以,你的測試應該包括一個expect子句(至於在尋找路由時會發生什麼)以及驗證的響應,在這個例子中是一個JSON對象。

使用摩卡,你能描述的試驗,

​​

因爲你需要一臺服務器運行反對,「supertest」,一個節點包是用來啓動你的「server.js」的http請求初始化服務器並使用請求(服務器)進行測試。

檢查this - GitHub倉庫有這個需求的完整測試模板。它也對返回的JSON對象進行了測試。

+1

儘管此鏈接可能會回答問題,但最好在此處包含答案的重要部分並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/16596394) –

+0

謝謝,帕特里克!問題的編輯部分不知何故減少了我充分回答的熱情,我不確定提問者是否真的在尋找答案,但由於其他人可能以類似要求着手解決問題,我提供了鏈接。 – user2347763

+0

@PatrickHund如果我的編輯滿足您的審查關注,請刪除-1 downvote – user2347763