2017-03-24 7 views
6

के लिए कोई प्रदाता मैं टेस्टबेड साथ Ionic2 परियोजनाओं का परीक्षण के बारे में article पढ़ा है और मैं मुसीबत जब मैं अपने वातावरण में लेख से उदाहरण दोहराने की कोशिश कर रहा हूँ मिल गया है। जब मैं चरण 3 पर परीक्षण शुरू करने की कोशिश मैं त्रुटि है "स्थिति के लिए कोई प्रदाता"।परीक्षण: StatusBar त्रुटि

शायद यह एक बेवकूफ सवाल है, लेकिन किसी को लगता है कि कर सकते हैं कि ऐसा क्यों होता है?

स्टेटसबार को मेरे app.component.ts फ़ाइल में शामिल (आयात किया गया) शामिल है।

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

उत्तर

8

टेस्टबेड उपयोग करते समय, आप पूरी तरह से नया @NgModule केवल परीक्षण के लिए पैदा कर रहे की providers सरणी में जोड़कर प्रयास करें। इस प्रकार, आपको उस परीक्षण मॉड्यूल को अपनी सभी निर्भरताओं को आयात करने के लिए कॉन्फ़िगर करना होगा - जिसमें आपके मामले में, स्टेटस बार शामिल है।

तो, उसी तरह आप स्थिति पट्टी अपने मुख्य आवेदन में आयात (या तो सीधे या उसकी NgModule आयात करके), आप अपने परीक्षण मॉड्यूल के लिए भी ऐसा ही करने की है।

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

या

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

(माफ करना, आयोनिक खुद से परिचित नहीं तो पता नहीं कैसे आप उपयोग के लिए StatusBar आयात) प्रतिक्रिया के लिए

+0

धन्यवाद! यह काम करता है। लेकिन थोड़ा काम करता है अजीब है। मैं फिर से परीक्षण मॉड्यूल में StatusBar आयात करना चाहिए, हालांकि यह पहले से ही परीक्षण किया घटक में आयातित किया जाना चाहिए है। – NobbyNobbs

+0

यह 'परीक्षण किए गए घटक में आयातित' से आपका क्या मतलब है इस पर निर्भर करता है। आप ES6 आयात अर्थात आयात {bla} से बात कर रहे हैं 'blah' बयान है, तो हाँ, कि हर जगह दिखाई देगा। – snorkpete

+0

हां, 'blah'_ से _import {bla }_ यह वही है जो मेरा मतलब था। – NobbyNobbs

1

अपने @NgModule

+0

धन्यवाद। यह पहले से ही जोड़ा गया है। – NobbyNobbs

संबंधित मुद्दे