首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用异步/等待调用在jest中调用api总是获得状态200

使用异步/等待调用在jest中调用api总是获得状态200
EN

Stack Overflow用户
提问于 2018-10-15 09:26:30
回答 1查看 1.2K关注 0票数 0

我在我的App.test.js文件中调用一个api来测试API:

我已经安装了jest-fetch-mock

这是我的devDependencies:

代码语言:javascript
复制
  "devDependencies": {
    "babel-preset-react-native-stage-0": "^1.0.1",
    "eslint-config-rallycoding": "^3.2.0",
    "jest": "^23.1.0",
    "jest-fetch-mock": "^1.6.6",
    "jest-react-native": "^18.0.0",
    "react-test-renderer": "16.3.1"
  },

App.test.js

代码语言:javascript
复制
describe('Test API', () => {

  it('ack', async () => {
    const response = await fetch('https://obscure-reaches-65656.herokuapp.com/api/drivers?city=TaipeiWest&lng=121.514163&lat=25.049447');
    expect(response).toBeDefined();
    console.log(response);
  });
});

我发现如果我使用无用的api https://obscure-reaches-65656.herokuapp.com/api/drivers?city=&lng=121.514163&lat=25.049447

或者把它移走

代码语言:javascript
复制
const response = await fetch('');

然后键入npm run test

我的状态仍然是200

这是console.log

代码语言:javascript
复制
Response {
  type: 'default',
  status: 200,
  ok: true,
  statusText: 'OK',
  headers: Headers { map: { 'content-type': 'text/plain;charset=UTF-8' } },
  url: '',
  _bodyInit: '',
  _bodyText: '' }

为什么异步/awiat不能工作?我想我会得到地位是422。

任何帮助都将不胜感激。提前准备好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-15 10:20:32

您总是得到该响应,因为在使用异步/等待时,您没有等待请求的承诺。之所以发生这种情况,是因为您在describe方法中没有正确使用异步。

看看在这篇文章,特别是不等待回调具有异步函数的单元测试

要使代码正确工作,请将异步添加到describe内部箭头函数中,如下所示:

代码语言:javascript
复制
describe('Test API', async () => {
    it('ack', async () => {
        const response = await fetch('https://obscure-reaches-65656.herokuapp.com/api/drivers?city=TaipeiWest&lng=121.514163&lat=25.049447');
        expect(response).toBeDefined();
        console.log(response);
    });
});

如果仍然得到相同的响应,那么将await添加到it (如果响应是承诺的,应该没有问题):

代码语言:javascript
复制
await it('ack', async () => {

您还可以查看这个问题是开玩笑的,并了解如何处理异步测试的这篇文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52813559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档