2016-04-26 22 views
5

Ho cercato di reagire-intl per i suggerimenti ma non lascia alcuna documentazione esplicita per enzyme.Test dei componenti react-intl con l'enzima

Ecco come ho cercato di scrivere i miei test.

import {IntlProvider} from 'react-intl'; 

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

Ma io continuo a ricevere l'errore

Violazione Invariant: [Reagire Intl] non riusciva a trovare richiesto intl oggetto. deve esistere nella discendenza componente.

Ho esaminato il loro repository e sembrano avere made it work con 'react-addons-test-utils'.

Sto facendo qualcosa di sbagliato?

risposta

0

ho ottenuto che funziona utilizzando

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

invece.

+0

Questo è un buon approccio per le istanze "superficiali". Nota che questo non funzionerà quando si usa il metodo 'mount' di Enzyme. – Mirage

+0

Hai provato il pacchetto enzima-react-intl? – JoeTidee