2014-03-29 50 views
3

我是AngularJS開發人員,因此大多數依賴於HTTP的單元測試使用$http服務和模擬$httpBackend服務。使用ArcGIS JavaScript API時嘲笑HTTP調用

我正在將一些代碼與ArcGIS JavaScript API集成在一起,該API可以進行HTTP調用,但顯然不使用$http,所以我的模擬後端不會幫助我隔離單元測試。

例如,當你建造一個WMSLayer對象...

require(['esri/layers/WMSLayer'], function(WMSLayer) { 
    var layer = new WMSLayer('/mock-endpoint'); 
}); 

它會嘗試做一個真正的HTTP連接到模擬端點。有沒有簡單的方法來嘲笑這件事,所以它不這樣做,而是去假的後端?

,我已經想出了一些想法:

  • 我知道,在內部通過ArcGIS API使用道場。我不熟悉道場 - 是否有相當於$httpBackend
  • 我使用茉莉花作爲我的單元測試跑步者。我可以用我自己的替代Ajax調用。
  • 我可能會做一些proxyUrl設置來反彈請求,但後來我進入了一些服務器端代碼,我想保留大部分客戶端的東西。

回答

1

我開發dojo應用程序,我最喜歡的方式是使用第三部分庫文件Sinon.JS

特別是我用假服務器的假的XMLHttpRequest - 總之我不知道在道場做這個土生土長的方式http://sinonjs.org/docs/#server

所以,但我發現SinonJS爲這個偉大庫(和其他模擬/存根),並且很容易與大多數測試框架集成。

祝你好運!

+0

我從來沒有去過那裏,但它看起來很酷。我實際上結束了與ArcGIS集成的不同路線,但我會檢查一下。 – austin