2017-03-07 17 views
3

我有一個陣營本地項目只包含了樣本玩笑測試中發現一個新的項目創建(他們只是檢查是否呈現在iOS和Android的作品)。類型錯誤:獲取是不是一個函數在陣營本地及玩笑

我的項目使用fetch在其中一個組件中的網絡請求。當我運行的應用程序能正常工作,但是當我運行測試他們失敗,此錯誤消息:

TypeError: fetch is not a function.

任何人都知道這是怎麼回事?

這裏是我的代碼使用fetch部分:

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); 
    }); 
}} 

的測試文件:

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

你應該顯示一些代碼。這也有幫助嗎? http://stackoverflow.com/questions/30954899/react-native-fetch-is-not-a-function – Matthias

+0

張貼的代碼,我使用fetch。我不使用'require',所以我的問題似乎不同。 –

+0

'fetch'帶有react-native,但不包含nodeJS(這是我認爲運行的Jest - 從來沒有用過我自己)。嘗試爲您的測試添加提取填充 –

回答

4

我有同樣的問題。將此添加到您的笑話規範中。

import 'isomorphic-fetch'; 
相關問題