2016-04-26 10 views
5

के साथ प्रतिक्रिया-इंटेल घटकों का परीक्षण मैंने सुझावों के लिए प्रतिक्रिया-intl में देखा है लेकिन यह enzyme के लिए कोई स्पष्ट दस्तावेज़ नहीं छोड़ता है।एंजाइम

इस प्रकार मैं अपने परीक्षण लिखने की कोशिश कर रहा हूं।

import {IntlProvider} from 'react-intl'; 

const intlProvider = new IntlProvider({locale: 'en'}, {}); 
const intl = intlProvider.getChildContext(); 
const customMessage = shallow(<CustomMessage />, { options: { context: intl } }); 

लेकिन मैं त्रुटि

अपरिवर्तनीय उल्लंघन मिलती रहती है: [प्रतिक्रिया Intl] की आवश्यकता नहीं पा सके intl वस्तु। घटक वंश में मौजूद होने की जरूरत है।

मैंने अपने रेपो में देखा और उन्हें 'प्रतिक्रिया-एडॉन्स-टेस्ट-यूटिल' के साथ made it work लगता है।

क्या मैं कुछ गलत कर रहा हूं?

उत्तर

2

मैं एक ऐसी ही प्रश्न का उत्तर पोस्ट किया है:

Injecting react-intl object into mounted Enzyme components for testing

आप import { shallowWithIntl } from 'intl-helper' करने में सक्षम होगा और उसके बाद एंजाइम के shallow() के बजाय shallowWithIntl() का उपयोग करें।

0

मैं बजाय

const customMessage = shallow(<CustomMessage />, { context: intl }); 

का उपयोग करके काम कर समझ में आ गया।

+0

यह 'उथले 'तत्काल के लिए एक अच्छा दृष्टिकोण है। ध्यान दें एंजाइम की 'माउंट' विधि का उपयोग करते समय यह काम नहीं करेगा। – Mirage

+0

क्या आपने एंजाइम-रिएक्शन-इंटेल पैकेज की कोशिश की है? – JoeTidee

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