ngMock은 index.html에 angular-mocks.js를 포함하면 자동으로 자체적으로 포함시키는 마법을 사용합니다.의존성을 지정하지 않고 AngularJS에 모듈을 자동으로로드하는 방법
파일을 포함시키고 모듈 의존성을 편집 할 필요가없는 각도로 테스트 모드에서 모듈을로드하는 가장 간단한 방법은 무엇입니까?
ngMock은 index.html에 angular-mocks.js를 포함하면 자동으로 자체적으로 포함시키는 마법을 사용합니다.의존성을 지정하지 않고 AngularJS에 모듈을 자동으로로드하는 방법
파일을 포함시키고 모듈 의존성을 편집 할 필요가없는 각도로 테스트 모드에서 모듈을로드하는 가장 간단한 방법은 무엇입니까?
모듈을로드하는 유일한 방법은 angular.module(...)
입니다. 호출하여 ngMocks 부하는 "그 자체"
angular.module('ngMock', ['ng']).provider(...).config(...);
당신은 그것을로드 종속성으로 모듈을 선언 할 필요가 없습니다. 스크립트에 angular.module('<moduleName>', [<moduleDependencies>...]);
을 포함하면됩니다. ngMocks
그것은 종속성 목록을 받아 'ngMock'
를 앞에 추가하도록 사용자 정의 인젝터를 만들기 때문에
는 ngMock
이 자동적으로 window.module
또는 angular.mock.module
를 사용하여로드 된 모듈의 의존성 목록에 추가하는 방법 "을 의미하는 경우, 그것은이다 :
window.inject = angular.mock.inject = function() {
...
return isSpecRunning() ? workFn() : workFn;
...
function workFn() {
var modules = currentSpec.$modules || [];
modules.unshift('ngMock'); // <-- this line does the trick
modules.unshift('ng');
...
당신은 인스턴스화 전에 종속성 목록에서 모듈을 앞에 추가하는 함수를 직접 만들 수 있습니다,하지만 난 거의 티 믿을 테스트에 도움이 될 것입니다. 반대로, 오류의 원인이 하나 더 있습니다 (종속성 오류를 "숨기는"가능성이 있음).
할 수 없습니다. 의존성 트리를 지정해야하기 때문에 모듈 로딩을 자동화 할 방법이 없습니다. Angular-mocks는'ng' 모듈에만 의존합니다. –
NgMock과 ngModule을 모듈 어레이로 이동시키지 않음으로써 ngMock을 통해 이것을 실현했습니다. 그들의 구현은 나에게 매우 깨끗해 보이지는 않지만 (그 프로세스에 대한 많은 지원 코드가있다.) 더 좋은 방법이 있는지 궁금하다. – eddiec
"자동 포함"이란 무엇을 의미합니까? ** [ngMocks] (http://code.angularjs.org/1.2.9/angular-mocks.js) **는 'angular.module ('ngMock ', ['ng ']) ...'을 사용하여로드합니다. 그 자체. – gkalpak