Я делаю модульные тесты с помощью Karma/Jasmine для ионного приложения. У меня есть.js, называемый initApp.js с этим кодом:
function initFactoryString() {
if (angular.isUndefined(thiz.string_list)) {
$http.get(url + 'strings/strings.json').success(function (response) {
$rootScope.static_strings = response;
});
}
};
ionic.Platform.ready(function () {
initFactoryString();
});
initFactoryString() загружает файл JSON со строками приложения. С другой стороны, у меня есть тест на жасмин для фабрики webservices с такими характеристиками:
it('Petición sin fechas', function() {
$httpBackend.expectGET('urlService').respond('dataResponse');
$webServices.getAvailableDates(1234);
$httpBackend.flush();
});
Если я выполню Karma, появится эта ошибка:
Error: Unexpected request: GET strings/strings.json
Expected GET urlService
Очевидно, что проблема связана с js-параллелизмом, потому что initApp.js был выполнен до моего теста на жасмин, но ответ решается в то же время в тестовом прогоне. Как я могу сделать, в случае теста, отключить вызов initFactoryString() автоматически?
вы можете использовать
$httpBackend.when('GET','urlService').respond('dataResponse');
var strings = readJSON('www/strings/strings.json'); $httpBackend.when('GET','strings/strings.json').respond(strings);
$http.get(url + 'strings/strings.json')
reqyest, либо заглушкуionic.Platform.ready
. Файлы вродеinitApp.js
вообще не должны быть включены в этот тест (и, возможно, Ionic).