AngularJS的 攔截器 和 Mocks

攔截器是 AngularJS 內置的一個特性,你能夠插入一個請求或者回調方法鏈,修改或者打斷各終結點之間的邏輯流。但在 AngularJS 應用的單元測試中,攔截器是用來捕捉 XHR 請求, 以免外部請求,由於它會觸發內部路由(解析的時候),Controller,Service 甚至是 Directive (不要在 Directive上這樣作 :P)。這就是一個單純的 AngualrJS 方法,任何外部請求都會被過濾(好比你在作這些的時候用 $http),不過用攔截器會增長測試的複雜度和額外代碼。所以若是你想避免攔截和 Mock,那麼用 Midway 測試來對應你的路由, Controller, Service 和 Directive。單元測試

另外一種避免 XHR 操做的方法是使用 Mock。Mock 是用來模擬提供請求的返回數據的。因此若是你有一個開銷很是大的操做(好比說調用外部 API )的時候,它須要用很長時間來獲取數據,那麼最好的辦法就是用 Mock 來欺騙你的代碼,讓它繼續幹接下來的事情而非等待。Mock 是一個很是有用的方法,用來分離測試代碼,排除噪音。測試

AngularJS 提供了內部的 Mock 模塊 angular-mocks.js,用於 單元測試(不是 Midway 或者 E2E 測試) 。 Karma 配置文件查找 / test 文件夾下面的每一個測試文件,執行。記住一件事情,若是你打算在之後用 MochaJS 作單元測試,用 Bower 來管理 angular-mocks ,因此你能夠確保 angular-mocks 最新。路由

相關文章
相關標籤/搜索