我正在使用Angular.js $httpBackend
來測試一些包裝$http
調用的服務(這是ngMock,而不是 ngMockE2E)。
看起來像expect
和when
這些東西對URL查詢參數的順序很敏感。例如。如果我做$httpBackend.when('POST','/apiCall?X=1&Y=2').respond(/* ... */)
或$httpBackend.expectPOST('/apiCall?X=1&Y=2')
,我得到URL不匹配,如果我有Y = 2 & X = 1的URL,而不是X = 1 & Y = 2。
我想以這樣的方式編寫我的測試,即被測試的服務可以自由地更改URL查詢字符串參數的順序而不會中斷測試。在$ httpBackend文檔中,我一直無法找到任何解決方法。什麼是正確的方法來做到這一點?
感謝 - 使用參數時,$ http調用似乎很有希望,所以我會upvote,雖然我仍然希望純粹在測試方面的優雅解決方案(使用正則表達式似乎在這裏矯枉過正,更不用說嚴重影響測試的可讀性...) –
是的,我同意正則表達式的閱讀或[更改](https://imgflip.com/i/7i79q)並不好玩 – calebboyd
下面是相關的代碼,它們對鍵進行排序:https:/ /github.com/angular/angular.js/blob/86c6be82e5508762912eb08e228410f5c1ed4d91/src/ng/http.js#L1055 –