测试request.spec.ts的时候,遇到一个奇怪的问题
来源:12-10 Axios 实例模块单元测试 测试代码编写
 
			慕姐5244529
2019-08-29

报错如图,代码我看了一下跟老师的代码几乎是一样的:
test('should reject on network errors', () => {
    const resolveSpy = jest.fn((res: AxiosResponse) => {
      return res
    })
    const rejectSpy = jest.fn((err: AxiosError) => {
      return err
    })
    jasmine.Ajax.uninstall()
    return axios('/foo')
      .then(resolveSpy)
      .catch(rejectSpy)
      .then(next)
    function next(reason: AxiosResponse | AxiosError) {
      jasmine.Ajax.install()
      expect(resolveSpy).not.toHaveBeenCalled()
      expect(rejectSpy).toHaveBeenCalled()
      expect(reason instanceof Error).toBeTruthy()
      expect((reason as AxiosError).message).toBe('Network Error')
      expect(reason.request).toEqual(expect.any(XMLHttpRequest))
    }
  })
jasmine.Ajax.uninstall()的调用似乎没有触发request.onerror事件,而是直接进入了response的validateStatus的校验。
写回答
	3回答
- 
				  大头爸爸啊 2020-11-03 我本地iis上开了个80端口的服务 关了好像就没问题了,不知道是不是这个原因 00
- 
				  ustbhuangyi 2019-08-31 就是把你的 expect 改为  00 00
- 
				  ustbhuangyi 2019-08-30 好像有些同学也是这个问题,这个比较奇怪了,理论上 jasmine.Ajax 就是 fake XMLHTTPRequest 的,如果 uninstall,就相当于直接发送请一个 /foo 的真实请求了,显然会报错,在我的控制台显示的是  
 这就相当于 jsdom 库抛出这个错误,你看看你那边是否显示这个错误。032019-08-30
相似问题
 
						 
						
