안녕하세요 저는 다음 각도 서비스에 대한 재스민 단위 테스트를 작성하려고합니다.각도 2+ 약속 단위 테스트
그러나 반환 값 약속 테스트를 작성하는 방법에 어려움을 겪고 있으며 정교한 리소스를 찾을 수 없습니다.
대부분의 투쟁은 반환 된 약속 내에서 호출 된 것을 테스트하는 방법을 모르는 것에서 비롯됩니다.
예를 들어, 나는지도 인스턴스 new google.maps.Map(el, mapOptions)
각도 2+ 전문가 날 약속을 작성하는 사양을 이해하는 데 도움이 수와 this.createMap()
호출 this._mapResolver
를 호출 테스트하려면? 또는 배울 참조를? @ArmenVardanyan
describe('Service: GoogleMapsAPIWrapper',() => {
const loaderServiceStub = {
load:() => Promise.resolve()
};
let service;
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [
GoogleMapsAPIWrapper,
{provide: MapsAPILoader, useValue: loaderServiceStub}
]
});
}));
beforeEach(async(inject([GoogleMapsAPIWrapper], (_service: GoogleMapsAPIWrapper) => {
service = _service;
})));
it('should be created',() => {
expect(service).toBeTruthy();
});
it('should be call _mapResolver with specified arguments', async(() => {
const elem = document.createElement('div');
const spyOnCreateMap = spyOn(service, '_mapResolver');
service.createMap(elem, {})
.then(() => {
expect(spyOnCreateMap).toHaveBeenCalled();
expect(spyOnCreateMap).toHaveBeenCalledWith(new google.maps.Map(elem, {}));
});
}));
});
정확히 테스트 하시겠습니까? Google Maps API가 실제로 작동합니까? 아니면 메서드가 실제로 약속을 반환합니까? –
@ArmenVardanyan 답장을 보내 주셔서 감사합니다. createMap() 메소드의 경우 this._mapResolver가 올바른 인수로 호출되었는지 확인하고 싶습니다. setMapOptions() 메소드의 경우 m.setOptions가 (options)로 호출되었는지 확인하고 싶습니다. 이미 Google지도 api가 실제로 다른 파일에서 작동하는지 확인했습니다. –
그래, 내가 대답을 제공하려고 노력합니다 –