2017-06-16 12 views
18

मैं अपने मार्ग रिज़ॉल्वर का परीक्षण करने की कोशिश कर रहा हूं और परीक्षण के दौरान मुझे TypeError: ctor is not a constructor मिला और कोई विचार नहीं कि यह क्यों होता है जबकि टाइपस्क्रिप्ट संकलित समय कोई त्रुटि नहीं होती है।कोणीय 4 यूनिट परीक्षण त्रुटि 'TypeError: ctor एक कन्स्ट्रक्टर नहीं है

TypeError: ctor is not a constructor 
TypeError: ctor is not a constructor 
    at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42355:26) 
    at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26) 
    at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17) 
    at _createClass (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42362:26) 
    at _createProviderInstance$1 (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42330:26) 
    at resolveNgModuleDep (http://localhost:9877/_karma_webpack_/vendor.bundle.js:42315:17) 
    at NgModuleRef_.webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.NgModuleRef_.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:43401:16) 
    at TestBed.webpackJsonp../node_modules/@angular/core/@angular/core/testing.es5.js.TestBed.get (http://localhost:9877/_karma_webpack_/vendor.bundle.js:48412:47) 
    at http://localhost:9877/_karma_webpack_/vendor.bundle.js:48418:61 
    at Array.map (native) 
+0

क्या आप ng2 बूटस्ट्रैप –

+0

हां का उपयोग कर रहे हैं। लेकिन मैं मार्ग रिज़ॉल्वर का परीक्षण कर रहा हूं। क्या यह मेरे मार्ग रिज़ॉल्वर को प्रभावित करता है यहां तक ​​कि एचटीएमएल या सीएसएस –

उत्तर

46

यह प्रदाताओं की घोषणाओं में एक त्रुटि हो सकती है।

जब आप किसी प्रदाता को नकल करने का प्रयास करते हैं और उपयोग के बजाय उपयोग क्लास का उपयोग करते हैं तो त्रुटि "टाइपरर: ctor एक कन्स्ट्रक्टर नहीं है" निकाल दिया जाता है।

providers: [{provide: OrderService, useClass: new OrderServiceMock()}] 

सही घोषणा है:

providers: [{provide: OrderService, useValue: new OrderServiceMock()}] 
+0

नहीं है आपने मेरा दिन बचाया –

2

मैं जब AOT के साथ अपने एप्लिकेशन बनाने में ठीक उसी संदेश था

यहाँ एक उदाहरण है कि त्रुटि सक्रिय करता है।

मेरी समस्या प्रदाताओं से संबंधित नहीं थी क्योंकि @बाहेत ने सुझाव दिया था।

ऐसा इसलिए था क्योंकि मैंने एक नई लाइब्रेरी स्थापित की जो एओटी अनुपालन नहीं था (और उसके पास कोई प्रदाता नहीं था)। प्रश्न में लाइब्रेरी निर्यात (मैं टाइपस्क्रिप्ट निर्यात के बारे में बात कर रहा हूं, कोणीय मॉड्यूल से नहीं) मॉड्यूल में आयात किया गया था (इस मामले में, एक घटक और एक पाइप)।

1

आपके लिए तीसरी संभावना, मेरे पास एक मॉड्यूल था जिसमें अन्य मॉड्यूल थे और अन्य मॉड्यूल निर्यात (टाइपस्क्रिप्ट बोलने) नहीं थे।

0

मुझे फायरबेस यूनिवर्सल स्टार्टर प्रोजेक्ट में फायरबेस के साथ संयोजन में कोणीय यूनिवर्सल के साथ यह समस्या थी। मैं आशा खो गया था क्योंकि ढेर ओवरफ्लो पर सभी संभावित सुधारों ने मदद नहीं की थी। https://www.npmjs.com/package/npm-check-updates

  • साथ

    1. अद्यतन सभी NPM संकुल node_modules और .पैकेज-lock.json निकालें और उन्हें पुनर्स्थापित
    2. बदली हुई एपीआई
    3. अब यह काम कर रहा था की वजह से सभी त्रुटियों फिक्स्ड: तो मैं निम्नलिखित किया :-)

    मैं कभी नहीं पता चला क्या पैकेज की वजह से त्रुटि, लेकिन एक दृष्टिकोण पता लगाने के लिए एक MockAppModule जहां मॉड्यूल एक के बाद एक को दूर तैयार करना है। आखिरकार आपको समस्या के साथ एक मिल जाएगा। लेकिन मेरे मामले में मुझे भाग्यशाली लगता है कि मुझे लगता है कि बग किए गए पैकेजों में से एक को अद्यतन या कुछ मिला है।

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