2013-05-07 42 views
4

我的角應用程序通過REST API與我的服務器進行通信。我想嘲笑這個API來快速開發前端。如何在AngularJS中模擬後端?

有兩種方法我看到:

  1. 使用ngMockE2E $httpBackend。這就要求:

    • 旋轉了一個簡單的靜態文件服務器(例如python -m SimpleHTTPServer
    • 負載角mocks.js在我的客戶
    • 配置模擬$httpBackend回到我想要的東西。

    缺點:必須有客戶端邏輯來決定是否使用模擬後端。另外,不要模擬實際的$ httpRequests,我們可能會與所有的flush()調用混淆。

  2. 創建一個實際的模擬後端。例如。啓動一個非常基本的node.js服務器,它將響應實際的 xhr請求。

    缺點:?

ngMockE2e $ httpBackend似乎是別人正在使用,但我不知道爲什麼。擁有一個真正的(模擬)後端似乎更直接,並且在開發時不太可能導致錯誤。

回答

0

只需在您的index.html旁邊創建一個.json文件。請您的$http請求獲取包含後端返回數據的此json文件。這是模擬後端的最簡單方法。當然,我假設你正在通過Web服務器服務你的角度應用程序。如果你還沒有運行網絡服務器,那麼這個解決方案將無法工作。

在生產中,你可以用實際的REST結束點替換這個json文件的url。

+1

謝謝,但那不會讓我測試不同類型的響應(403,502等)。 – 2013-05-20 23:11:50

+0

你能舉個例子嗎?! – svarog 2014-11-26 09:04:04

0

我有類似的問題,我開始用ganaraj建議的一個簡單的.json文件,但當我需要測試數據修改時,轉移到一個簡單的node.js服務器。

ngMockE2e實際上用於測試,並不是爲實際用作RESTful服務器而設計的。在您提供的鏈接的例子中,如果您要爲特定的手機運行GET,則必須通過手機數組循環查找所需的手機。

0

類似的問題回答了here

基本上你包括后角角嘲笑,並使用在this gist 提供的代碼和你將能夠CONTROLL請求和響應,包括標頭和假響應延遲等

0

對於替代更加自動化後端嘲笑的方式,看看swagger-api-mock,與rest-json一起工作的很好。 這些模塊可以共同用於生成$ httpBackend響應:rest-json.js,類似於http訪問json數據和swagger-api-mock/lib/mock-data。js作爲基於swagger(或json模式)定義的json模擬數據對象的生成器