2016-10-19 14 views
7

की संपत्ति 'परिभाषित प्रॉपर्टीज' नहीं पढ़ सकता है। मैं वर्तमान में एक प्रतिक्रिया मूल परियोजना पर काम कर रहा हूं और फायरबेस जेएस एसडीके का उपयोग करना चाहता हूं। अपने सभी एपीआई से परिचित होने के लिए मैंने जेस्ट के साथ कुछ सीखने के परीक्षण लिखने का विचार किया। यह मेरी परीक्षा है:जेस्ट + फायरबेस: टाइप एरर: अपरिभाषित

import Firebase from 'firebase'; 
describe('Firebase', function() { 
    it('should work', function() { 
    expect(null).toBeNull() 
    }) 
}); 

दुर्भाग्य से मैं इस त्रुटि हो रही है: ● टेस्ट सूट

TypeError: Cannot read property 'defineProperties' of undefined 

    at node_modules/firebase/app-node.js:18:234 
    at Object.<anonymous> (node_modules/firebase/app-node.js:23:260) 
    at Object.<anonymous> (node_modules/firebase/firebase-node.js:8:16) 
    at Object.<anonymous> (firebase.test.js:1:104) 

चलाने के लिए साथ import React from 'react' सब कुछ ठीक काम करता है अगर मैं आयात राज्य की जगह विफल रहा है। तो मैं कुछ एपीआई कॉल का परीक्षण करने के लिए फायरबेस का उपयोग क्यों नहीं कर सकता।

यह मेरा package.json है:

{ 
    ..., 
    "dependencies": { 
    "firebase": "^3.5.0", 
    "react": "15.3.2", 
    "react-native": "0.35.0" 
    }, 
    "jest": { 
    "preset": "jest-react-native" 
    }, 
    "devDependencies": { 
    "babel-jest": "16.0.0", 
    "babel-preset-react-native": "1.9.0", 
    "jest": "16.0.1", 
    "jest-react-native": "16.0.0", 
    "react-test-renderer": "15.3.2" 
    } 
} 
+1

हाँ यहाँ वही। फायरबेस स्वयं ऐप के भीतर बहुत अच्छा काम करता है, लेकिन एक बार जब आप परीक्षण चलाने की कोशिश करते हैं तो आपको यह त्रुटि मिलती है। काफी परेशान :( –

+0

वही। क्या आपने अपने ऐप को कैसे व्यवस्थित किया है, इसका समाधान पता लगाया है? – hs2345

+0

वही समस्या, अगर मैं 'फायरबेस' से फायरबेस के रूप में आयात करता हूं; 'मुझे लगता है' संपत्ति 'नेविगेटर' नहीं पढ़ी जा सकती अपरिभाषित ' – rel1x

उत्तर

2

समस्या यह है कि स्थापित करने और "हंसी प्रतिक्रिया देशी" और "प्रतिक्रिया देशी" प्रीसेट हमारी क्षमता को "आयात" firebase टूट जाता है को विन्यस्त है! फिक्स्ड फ़ायरबेस (import) आपकी test.js फ़ाइल में है, और react-native आयात करने वाली एक पंक्ति जोड़ें। import आईएन react-native से require('firebase') के बिना, फायरबेस को परीक्षण फ़ाइल में शामिल नहीं किया जाएगा! यहां मेरा github repo है जो आपको उन चरणों के माध्यम से चलता है जो त्रुटि को पुन: उत्पन्न करते हैं, और इसे कैसे ठीक करें।

वहाँ भी एक बासी हंसी कैश जो आप

./node_modules/jest/bin/jest.js --no-cach

यह हर मैं एक पूर्वप्रक्रमक विकल्प के साथ कुछ भी बदल हो रहा है चलाने के लिए आवश्यकता हो सकती है हो सकता है।

See jest documentation on caching issues.

+0

यह मेरे लिए है! मुझे लगता है कि मैं इसे सेरेन्डिपिटस जेस्ट कैशिंग के कारण अलग-अलग काम करने में सक्षम था :) मैंने इसे स्थानीय रूप से और क्लाउड 9 पर अपनी लिनक्स मशीन पर आजमाया है। दोनों कार्य। मुख्य बात यह है कि '' बेबेल 'का उपयोग करना है: {"प्रीसेट्स": ["es2015", "प्रतिक्रिया-मूल"]}' या मुझे लगता है कि एक ही प्रीसेट के साथ एक .babelrc फ़ाइल, जेस्ट प्रतिस्थापन के INSTEAD। –

+0

जेस्ट प्रीसेट को हटाकर वास्तव में काम किया, धन्यवाद! जैसे ही मैं कर सकता हूं (10 घंटों में) मैं बक्षीस का पुरस्कार दूंगा। –

+0

बहुत बहुत धन्यवाद! वास्तव में मेरी समस्या हल हो गई और मैं बिना किसी त्रुटि के फायरबेस 'आयात कर सकता हूं। चूंकि यह मेरा वास्तविक प्रश्न था जिसे मैंने उत्तर के रूप में चिह्नित किया था :) दुर्भाग्यवश '' जेस्ट "को हटा रहा है: {" प्रीसेट ":" जेस्ट-रिएक्ट-नेटिव "} 'ब्रेक टेस्ट जहां मैं त्रुटि के साथ" प्रतिक्रिया-मूल "आयात करता हूं:' ReferenceError: __DEV__ परिभाषित नहीं किया गया है '। इसके लिए कोई सलाह? –

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