2017-11-13 1 views
6

Ich habe folgendes Jest Test:Kann finden Modul nicht aus 'reagieren-native-implementation.js'

import React from 'react'; 
import IndexSign from '../IndexSign'; 
import renderer from 'react-test-renderer'; 

it('renders correctly',() => { 
    const tree = renderer.create(
    <IndexSign index={1}/> 
).toJSON(); 
    expect(tree).toMatchSnapshot(); 
}); 

Die IndexSign Komponente, die ich Anrufe diese StyleSheet Komponente nenne:

import {StyleSheet} from 'react-native'; 

export default StyleSheet.create({ 
    //some styles 
}); 

Für Testen, verwende ich Gulp:

Das Problem ist, dass wenn ich diese te laufen st, ich bekomme:

● Test suite failed to run 

Cannot find module 'StyleSheet' from 'react-native-implementation.js' 

    at Resolver.resolveModule (../node_modules/jest-resolve/build/index.js:142:17) 
    at Object.StyleSheet (../node_modules/react-native/Libraries/react-native/react-native-implementation.js:98:25) 
    at Object.<anonymous> (styles/Styles.js:5:13) 

Eine Idee, warum das passiert?

Warum sucht es StyleSheet in react-native-implementation.js anstatt react-native, die ich importierte?

Und warum kann es StyleSheet nicht finden?

+0

Haben Sie eine Lösung gefunden? Stolperte darüber auch – Zephir77167

Antwort

2

Ich stieß auf das gleiche Problem. Hinzufügen

"jest": { 
    "preset": "react-native" 
}, 

in der package.json behoben den Fehler für mich.

+0

Wenn das Projekt mit 'reactive-native init' erstellt wird, ist dies für Sie erledigt – mcabe