0
나는 부트 스트랩하기 전에 2 개의 서비스를 호출하는 앵글 응용 프로그램을 가지고 있습니다. 나는 그 호출을 조롱하거나 스텁하고 싶습니다. 그렇지 않으면 karma는 이러한 호출을 수행하려고 시도하고 콘솔에 오류를 계속 표시합니다.로드시 실행되는 AJAX 호출을 모의하거나 스텁하는 방법은 무엇입니까?
어떻게하면됩니까?
자바 스크립트 :
import appConstant from './app-gouvernementales.constant.js';
import appConfig from './app-gouvernementales.config.js';
import appRun from './app-gouvernementales.run.js';
import AppComponent from './app-gouvernementales.component.js';
const requires = [
'ngMessages',
'ngRoute',
'ngSanitize',
'permission',
'permission.ng',
'ngMockE2E',
];
const app = angular
.module('app-gouvernementales', requires)
.config(appConfig)
.run(appRun)
.component('appGouvernementales', AppComponent)
.name;
// create and bootstrap application
getConfig()
.then((config) => {
angular.module('app-gouvernementales')
.constant('APP_SETTINGS', appConstant(config));
return { url: `${config.protocol}://${config.host}`, uid: config.shibbolethUid };
})
.then(data => getUser(data.url, data.uid))
.catch((err) => {
console.log(err);
document.location.href = '/erreur/role';
})
.then((_user_) => {
const user = _user_.data;
angular.module('app-gouvernementales')
.constant('USER', user);
})
.then(() => {
angular.bootstrap(document, ['app-gouvernementales']);
});
function getConfig() {
const initInjector = angular.injector(['ng']);
const $http = initInjector.get('$http');
return $http.get('/gouvernementales/app-gouvernementales.config.json')
.then(response => response.data);
}
function getUser(url, uid) {
const initInjector = angular.injector(['ng']);
const $http = initInjector.get('$http');
return $http.get(`${url}/roles`, { withCredentials: true, headers: { 'X-uid': uid } });
}
export default app;
이것은 카르마가로드되어야하는 파일을 선택할 때 모든 것을 가져 오는 "엔트리 포인트 파일"이 아니어야한다는 것을 의미합니까? – justinledouxweb
자, 이제 루트 앱 모듈 생성을 부트 스트랩 파일에서 분리하고 앱 모듈 파일과 모든 사양 만로드하도록 카르마를 구성했습니다. 대부분의 테스트는 작동하지만 어떤 이유로 일부 임의의 구성 요소 또는 서비스가로드되지 않습니다 ... 이유를 파악할 수 없습니다. – justinledouxweb
이전 테스트와 거의 같은 이음새가 다음 테스트에 영향을줍니다 – justinledouxweb