2017-03-24 4 views
6

TestBed를 사용하여 Ionic2 프로젝트를 테스트하는 방법에 대해 article을 읽었으며 내 환경의 기사에서 예제를 반복 할 때 문제가 발생했습니다. 단계 3에서 테스트를 시작하려고하면 "상태 표시 줄에 대한 공급자가 없습니다" 오류가 있습니다.TestBed로 테스트 : 아니요 StatusBar 오류 공급자 없음

아마도 바보 같은 질문 일지 모르지만 누군가 일어날 수 있다고 생각할 수 있습니까?

StatusBar가 내 app.component.ts 파일에 포함 (가져 오기)되었습니다. 당신의 @NgModule

답변

8

테스트 베드를 사용하여, 당신은 테스트를 위해 전적으로 완전히 새로운 @NgModule을 만드는의 providers 배열에 추가하여

import { StatusBar } from '@ionic-native/status-bar'; 
+0

감사합니다! 작동합니다. 그러나 작품은 조금 이상합니다. 테스트 된 구성 요소에 StatusBar를 이미 가져와야하지만 테스트 모듈에서 StatusBar를 다시 가져와야합니다. – NobbyNobbs

+0

'테스트 된 구성 요소로 가져 오기'가 의미하는 바에 따라 다릅니다. ES6 가져 오기 즉 'blah'문에서 가져 오기 (bla)를 입력하면 예, 그 곳곳에 나타납니다. – snorkpete

+0

예, _import {bla}에서 'blah'_ 바로 그 뜻입니다. – NobbyNobbs

1

보십시오. 따라서 상태 모듈을 포함하여 모든 종속성을 가져 오도록 테스트 모듈을 구성해야합니다.

주 응용 프로그램에서 상태 표시 줄을 가져 오는 것과 같은 방법으로 (직접 또는 포함 된 NgModule을 가져옴으로써) 테스트 모듈에 대해서도 동일한 작업을 수행해야합니다.

TestBed.configureTestingModule({ 
    ......, 
    providers: [ 
    StatusBar 
    ] 
}) 

또는

TestBed.configureTestingModule({ 
    imports: [ 
     ModuleContainingStatusBar 
    ]  
}) 

응답을

+0

감사합니다 (죄송합니다, 이온 자체에 익숙하지 그래서 당신은 사용 상태 표시를 가져올 방법을 모른다). 이미 추가되었습니다. – NobbyNobbs