2016-04-26 10 views
5

Ich habe in react-intl nach Vorschlägen gesucht, aber es gibt keine explizite Dokumentation für enzyme.Testen von react-intl Komponenten mit Enzym

So habe ich versucht, meine Tests zu schreiben.

import {IntlProvider} from 'react-intl'; 

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

Aber ich halte den Fehler immer

unveränderliche Verletzung: [Reagieren Intl] kann nicht intl Objekt erforderlich finden. muss im Komponentenstamm vorhanden sein.

Ich schaute in ihre Repo und sie scheinen made it work mit 'react-addons-test-utils' zu haben.

Mache ich etwas falsch?

Antwort

0

Ich habe es durch stattdessen

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

mit arbeiten.

+0

Das ist ein guter Ansatz für "flache" Instanziierungen. Beachten Sie, dass dies nicht funktioniert, wenn Sie die "Mount" -Methode von Enzyme verwenden. – Mirage

+0

Haben Sie das enzyme-react-intl Paket ausprobiert? – JoeTidee

Verwandte Themen