开玩笑如何检查异步响应

时间:2018-07-25 12:55:23

标签: unit-testing jestjs

我是Jest和React的新手,所以这应该是一个非常简单的问题……我有一个api端点,我想检查一下是否可以命中。我选择Axios作为客户端进行尝试,并创建了以下测试:

describe('Api Tests', () => {
  it('can perform an axios request', () => {
    console.log('Here goes!');

    const resp = axios.get('api-endpoint');
    console.log(resp);
    expect(resp).toBeDefined();

    console.log('Done...');
  });
});

感谢,测试通过了,但输出如下:

 PASS  src\api\api.test.js
  Api Tests
    √ can perform an axios request (39ms)

  console.log src\api\api.test.js:15
    Here goes!

  console.log src\api\api.test.js:23
    Promise { <pending> }

  console.log src\api\api.test.js:25
    Done...

我该如何测试一个简单的请求(不发送请求),这样我才能得到一个可以查询的响应?

2 个答案:

答案 0 :(得分:0)

我有一个很好而简单的方法,也许您也会喜欢。保持简单即可。

`import axios from 'axios'; 
  axios.get('url goes here')
  .then(response =>{console.log(response)})`

也许对您有帮助。

答案 1 :(得分:0)

由于axios.get返回了一个承诺,您应该指示Jest to wait for the response返回。

it('can perform an axios request', async () => {
  const resp = await axios.get('api-endpoint');
  expect(resp).toBeDefined();
});

或没有async函数:

it('can perform an axios request', () => {
  return expect(axios.get('api-endpoint')).resolves.toBeDefined();
});