2016-10-16 4 views
0

기존 각도 응용 프로그램이 있습니다. 이제 단위 테스트를 시작하겠습니다. 재스민과 카르마를 사용하여 서비스를 테스트합니다. 제 문제는 $ stateProvider 종속성을 가진 서비스를 테스트 할 수 없다는 것입니다. 내가 사용하고 무엇 :공급자 종속성을 사용하여 테스트 모듈을 어떻게 단절합니까?

angular.module('starter.start', []).config(function ($stateProvider) { 
      // ... 
}).factory('MyService', function() { 
      // ... 
}); 

테스트 :

describe('MyServiceSpec', function() { 
    var MyService; 
    beforeEach(angular.mock.module('starter.start')); 
    beforeEach(inject(function(_MyService_) { 
     MyService= _MyService_; 
    })); 

    it('should exist', function() { 
     expect(MyService).toBeDefined(); 
    }); 
}); 

내가 오류 Unknown provider: $stateProvider를 얻을 은 - 각 모의 객체 1.5.8

내 코드 - 1.5.8 을 AngularJS와. 내 연구에서 내가 $provide으로 뭔가를해야한다는 것을 알았지 만 어떻게해야할지 모르겠다.

답변

1

당신은

다음에 당신은 당신이 서비스를

+0

감사합니다,이 호출 할 필요가 다음 주 응용 전에

beforeEach(angular.mock.module('ui.router')); beforeEach(angular.mock.module('starter.start')); 

을 ui.router 주입해야하고 설정 파일에 $의 stateProvider를 추가해야 도와 줬어. 하지만 거기에 $ stateProvider를 조롱하는 방법이 있습니까? 앞으로는 내 모듈 설정이 $ stateProvider와 같은 의존성을 갖는 모든 종속성을 초기화하고 싶지 않습니다. 테스트하고 싶은 실제 서비스는 $ stateProvider와 아무 관련이 없기 때문입니다. – user3481997

+0

특정 테스트 케이스에 사용할 종속성을 주입해야하므로 config에서 모든 것을 주입 할 필요가 없습니다. –