如何在React Native中模拟获取功能

时间:2019-09-11 05:27:49

标签: javascript reactjs unit-testing jestjs

我需要知道如何从以下函数模拟fetchRequest。我需要从logData函数获取响应,但就我而言,它正在执行catch。 无论如何有模拟这个功能。谁可以帮我这个事。

it("logData", async () => {
      var remoteURL = ClassName.logData(params);
      await expect(ClassName.logData(params)).toBe(somevalue)
});


export function logData(params) {
  return fetch(
    "someURL",
    {
      method: 'POST',
      headers: {
        'Authorization': authToken,
        'Content-type': 'application/json',
      },
      body: JSON.stringify(params),
    }
  )
    .then(response => {
      console.log("Response" + JSON.stringify(response))
      props.setState({ "keys": response.start, });
    })
    .catch(error => {
      console.log('ERROR' + error);
      return 'ERROR---', error;
    });
}

export default function fetchRequest (input, init) {
  return new Promise(function(resolve, reject) {
    var request = new Request(input, init)
    var xhr = new XMLHttpRequest()

    /* @patch: timeout */
    if (init && init.timeout) {
      xhr.timeout = init.timeout;
    }
    /* @endpatch */
    console.warn('timeout time'+init.timeout);
    xhr.onload = function() {
      var options = {
        status: xhr.status,
        statusText: xhr.statusText,
        headers: parseHeaders(xhr.getAllResponseHeaders() || '')
      }

    xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
  })
}

0 个答案:

没有答案