2017-03-07 4 views
3

Ich habe ein Reagieren Mutter Projekt, das nur die Probe enthält Jest Tests, die mit einem neuen Projekt erstellt werden (sie nur, wenn überprüfen Werke auf iOS- und Android-Rendering).Typeerror: holen ist keine Funktion in Reaktion india & Jest

Mein Projekt verwendet fetch für Netzwerkanforderungen in einer der Komponenten. Dies funktioniert gut, wenn ich die app laufen, aber wenn ich die Tests laufen sie nicht mit dieser Fehlermeldung:

TypeError: fetch is not a function.

Wer weiß, was los ist?

Hier ist der Teil meines Code, fetch verwendet:

export default class MainScene extends Component { 

constructor(props) { 
    super(props); 
    this.renderRowView = this.renderRowView.bind(this); 
} 

onFetch(page = 1, callback) { 

    var date = new Date(); 
    date.setDate(date.getDate() - 7); 

    fetch( url, { 
     method: 'GET', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json' 
     } 
    }) 
    .then((response) => response.json()) 
    .then((responseJson) => { 
     if (responseJson.response.pages <= page) { 
      callback(responseJson.response.results, { 
       allLoaded: true 
      }); 
     } else { 
      callback(responseJson.response.results); 
     } 
    }) 
    .catch((error) => { 
     console.error(error); 
    }); 
}} 

An der Testdatei:

import 'react-native'; 
import React from 'react'; 
import Index from '../index.ios.js'; 
import renderer from 'react-test-renderer'; 

it('renders correctly',() => { 
    const tree = renderer.create(
    <Index /> 
); 
}); 
+0

sollten Sie etwas Code anzeigen. Hilft das auch? http://stackoverflow.com/questions/30954899/react-native-fetch-is-not-a-funktion – Matthias

+0

Posted Code, wo ich fetch verwenden. Ich benutze 'require' nicht, damit mein Problem anders aussieht. –

+0

'Fetch' kommt mit reactive-native, aber nicht mit nodeJS (was ich glaube, rennt Jest - hat es nie selbst benutzt). Versuchen Sie, einen Fetch-Polyfill für Ihre Tests hinzuzufügen –

Antwort

4

Ich hatte gerade das gleiche Problem. Fügen Sie das zu Ihrer Scherzspezifikation hinzu.

import 'isomorphic-fetch'; 
Verwandte Themen