我是一個團隊的一員,已經在angularjs上工作了很長一段時間,我們的單元測試包含了包含測試邏輯和測試每個組件的提供者模擬的文件元素依賴於。如何避免AngularJS Jasmine測試中的代碼重複
這導致越來越多的代碼重複,任何人都可以推薦一種角度方法,我們可以維護測試基礎架構,模擬控制器或服務一次,並能夠根據需要將其模擬服務注入其他測試?
編輯我正在使用的代碼是專有的,但例如,考慮您有10或15個服務通過HTTP請求檢索數據,以不同方式格式化數據並返回該數據。一個例子可以返回數據數組所以依賴於該服務的每個文件,我們必須初始化這樣(減少和改變,所以請忽略任何拼寫錯誤或其他錯誤)
myDataService: {
getDataParsedLikeY: {
[{obj1},{obj2}...]
},
getDataParsedLikeX: {
[{obja},{objb}...]
}
beforeEach(angular.mock.module('myModule'));
beforeEach(angular.mock.inject(function(myDataService) {
myDataService = function(functionName) {
return myDataService[functionName];
}
spyOn(myDataService).and.callThrough();
})
}
你能否給我們一些不應該重複測試的示例代碼? – yazaki 2015-04-01 07:15:34
我已經添加了我可以編輯的內容,希望它有幫助 – SMC 2015-04-01 07:33:24
@yazaki服務嘲諷是他試圖不在每個控制器測試中重複遍歷的代碼。 – Stephane 2015-04-12 12:27:27