Unit testing Jest如何检查异步响应

Unit testing Jest如何检查异步响应,unit-testing,jestjs,Unit Testing,Jestjs,我对开玩笑和反应还不熟悉,所以这应该是一个非常简单的问题来回答。。。我有一个api端点,我想检查我是否可以点击。我选择Axios作为客户端来尝试这一点,并创建了以下测试: describe('Api Tests', () => { it('can perform an axios request', () => { console.log('Here goes!'); const resp = axios.get('api-endpoint'); con

我对开玩笑和反应还不熟悉,所以这应该是一个非常简单的问题来回答。。。我有一个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...
通过src\api\api.test.js
Api测试
√ 可以执行axios请求(39毫秒)
console.log src\api\api.test.js:15
来吧!
console.log src\api\api.test.js:23
承诺{}
console.log src\api\api.test.js:25
完成。。。

我如何测试一个简单的请求(无需模拟),这样我就可以得到一个响应,然后我可以询问它?

我有一个很好的简单方法,也许你也会喜欢它。保持简单

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

可能会发现对您有帮助。

因为
axios.get
会返回您应该指示返回的承诺

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

在测试数据库中进行实际的api调用。并验证DbPankaj中的更改。感谢Pankaj,我已经尝试过了,但它没有完成并显示承诺。请尝试在状态中创建一个变量并将完整响应存储在那里。这就是我要寻找的。。。我不认为测试本身是一个匿名的方法,可以被定义为异步。谢谢