describe("Sample Test Suite", function() {
beforeEach(function() {
module('moduleThatContainsServiceA');
inject([
'serviceA', function(service) {
this.service = service;
}
]);
});
it('can create an instance of the service', function() {
expect(this.service).toBeDefined();
});
});
오류 어디서 구할 수 있다.
>. 오류: 알 수 없는 공급자입니다: 저비스베프로비더
이 같은 일이 어떻게 나는한다?
이것은 종종 완료되어도 미아프모크스, 퍼팅 등 새로운 모듈에서는 정의하여 추가 서비스 / 값을 조 롱하였기 좁히어 그리고 불과 이 모듈로 상관 관계.
종류의 (개략적으로):
beforeEach(function() {
angular.module('MyAppMocks',[]).service('B', ...));
angular.module('Test',['MyApp','MyAppMocks']);
...
나는 이 일을 찾을 수 있는 커피스크립트 및 추가 잡았다. (역시 내가 이 페이지를 찾을 수 있는 코드를 혼동 간결한.) # 39 의 here& 전체 apc® 예:
describe 'serviceA', ->
mockServiceB = {}
beforeEach module 'myApp' # (or just 'myApp.services')
beforeEach ->
angular.mock.module ($provide) ->
$provide.value 'serviceB', mockServiceB
null
serviceA = null
beforeEach inject ($injector) ->
serviceA = $injector.get 'serviceA'
it 'should work', ->
expect( true ).toBe( true )
#serviceA.doStuff()
귀국 후 ',' 내가 '$ 프로비데스발루 가져오는 nulll 명시적으로 없이 계속 오류: # 39, & # 39 fn& 것이다. '기능, attaboy 객체에는 아닙니다. 내가 찾은 답은 이 [구글 그룹스 스레드할] (https://groups.google.com/forum/ #! msg/angular/gCGF_B4eQkc/XjkvbgE9iMcJ).
이 솔루션을 가져다줄래요 협력했습니다 발렌티노) 이 있는데, 또 다른 대체.
beforeEach(function () {
angular.mock.module("moduleThatContainsServiceA", function ($provide) {
$provide.value('B', ...);
});
});
이 때 보라그들은 앙굴라이스 서비스 요청을 통해 서비스 B 의존성 주입 너회의 조룽 대신 B 에서 모두릿헤트콩탱서비체아 서비스 서비스 B 제공된다.
이 방법은 don& # 39, t 각 모듈에서는 조룽 추가로 만들 필요가 어디 서비스.
가장 간단한 방법은 바로 투입할 수 있는 서비스 bdhk 조룽 다운로드합니까 거잖나. 예를 들어 자동차 서비스 서비스 엔진이 달려 있다. 이제 테스트 할 때 조룽 Engine 자동차:
describe('Testing a car', function() {
var testEngine;
beforeEach(module('plunker'));
beforeEach(inject(function(engine){
testEngine = engine;
}));
it('should drive slow with a slow engine', inject(function(car) {
spyOn(testEngine, 'speed').andReturn('slow');
expect(car.drive()).toEqual('Driving: slow');
}));
});
이것은 어떤 방법이 주효했는가 for me. 중요한 것은 실제 모듈에서는 조 롱하였기 정의할 수 있다. 실제 모듈에서는 연결할 수 있는 것을 모크이블 앙굴라리모크리모두리 호출하십시오 수 있습니다.
beforeEach( ->
@weather_service_url = '/weather_service_url'
@weather_provider_url = '/weather_provider_url'
@weather_provider_image = "test.jpeg"
@http_ret = 'http_works'
module = angular.module('mockModule',[])
module.value('weather_service_url', @weather_service_url)
module.value('weather_provider_url', @weather_provider_url)
module.value('weather_provider_image', @weather_provider_image)
module.service('weather_bug_service', services.WeatherBugService)
angular.mock.module('mockModule')
inject( ($httpBackend,weather_bug_service) =>
@$httpBackend = $httpBackend
@$httpBackend.when('GET', @weather_service_url).respond(@http_ret)
@subject = weather_bug_service
)
)