关于网络测试requests.spec.ts
来源:12-8 请求模块单元测试 jasmine-ajax + 测试代码编写

躁动的胸大肌
2019-07-19
代码
test('should reject on network errors', done => {
const resolveSpy = jest.fn((res: AxiosResponse) => {
return res
})
const rejectSpy = jest.fn((e: AxiosError) => {
return e
})
jasmine.Ajax.uninstall()
axios('/foo')
.then(resolveSpy)
.catch(rejectSpy)
.then(next)
function next(reason: AxiosResponse | AxiosError) {
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.install()
done()
}
})
这里在jest中测试,使用的是原生的xmlhttpquest?,error类型为
[object DOMException]
而且readystatechange事件和error事件无法触发
写回答
1回答
-
ustbhuangyi
2019-07-19
你运行我源码的测试用例呢?
执行了 jasmine.Ajax.uninsall() 后,发送的就是真实的 XMLHTTPRequest 了012019-07-19
相似问题
这里没有走网络错误的逻辑,好奇怪
回答 4
老师,对于测试方式的选择,这样理解对吗
回答 1
关于单元测试的疑惑
回答 1
请问单元测试和e2e测试的区别在哪里
回答 1
关于error测试的名称
回答 1