axios 测试疑问

来源:12-8 请求模块单元测试 jasmine-ajax + 测试代码编写

许愿瓶啊

2020-08-30

按照我的理解,jasmine-ajax 的作用相当于拦截了 axios 的请求,主动写了一些响应并返回。
那么和我直接起一个后台,返回响应进行测试有什么区别吗?
例如如下代码:

import axios from '../src/index'

describe('requests', () => {
  test('test axios request', () => {
    return axios.get('http://192.168.2.100:8080/base/get').then(response => {
      expect(response.status).toBe(200)
    })
  })
})

跑了下测试发现还是会报网络错误,但我后台 8080 端口确实起了服务的,报错如下:
图片描述
有两个疑问:

  1. 测试 axios 能不能像上面写的那样测试?
  2. 这个报错是因为 jsdom 在 node 端无法完全模拟 XMLHttpRequest 对象吗?
写回答

1回答

ustbhuangyi

2020-08-30

jsdom 本质上还是 node.js 端的包,所以无法完全模拟真实的浏览器端的 XMLHttpRequest 对象。

0
1
许愿瓶啊
非常感谢!
2020-08-31
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2632 学习 · 877 问题

查看课程