Javascript Axios请求引发未知错误
我正在尝试对正在开发的应用程序进行单元测试,但在axios中发出AJAX请求的函数方面遇到了问题。以下是我为其编写的模拟函数(注意:MockPBufData.txt文件是一个使用协议缓冲区序列化的文件,我从datamine.mta.info下载了该文件。下载该文件可能会弄乱其格式并导致此错误?) 下面是失败的测试(我期望的属性是在datamine.mta.info上找到的每个反序列化文件上): 最后,这里是Jest错误以及来自控制台的堆栈跟踪:Javascript Axios请求引发未知错误,javascript,node.js,reactjs,protocol-buffers,jestjs,Javascript,Node.js,Reactjs,Protocol Buffers,Jestjs,我正在尝试对正在开发的应用程序进行单元测试,但在axios中发出AJAX请求的函数方面遇到了问题。以下是我为其编写的模拟函数(注意:MockPBufData.txt文件是一个使用协议缓冲区序列化的文件,我从datamine.mta.info下载了该文件。下载该文件可能会弄乱其格式并导致此错误?) 下面是失败的测试(我期望的属性是在datamine.mta.info上找到的每个反序列化文件上): 最后,这里是Jest错误以及来自控制台的堆栈跟踪: expect(object)[.not].toHa
expect(object)[.not].toHaveProperty(path, value)
Expected object to be an object. Received:
undefined: undefined
at Object.<anonymous>.it (src/tests/api.test.js:12:37)
at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)
at process._tickCallback (internal/process/next_tick.js:109:7)
{ Error: Network Error
at createError (/Users/Ben/React/subway-checker/node_modules/axios/lib/core/createError.js:16:15)
at XMLHttpRequest.handleError [as onerror] (/Users/Ben/React/subway-checker/node_modules/axios/lib/adapters/xhr.js:87:14)
at XMLHttpRequest.callback.(anonymous function) (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:289:32)
at invokeEventListeners (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:219:27)
at invokeInlineListeners (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:166:7)
at EventTargetImpl._dispatch (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:122:7)
at EventTargetImpl.dispatchEvent (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:87:17)
at XMLHttpRequest.dispatchEvent (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35)
at XMLHttpRequest.abort (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:405:16)
at Object.abort (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/xhr-utils.js:315:13)
at RequestManager.close (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js:146:21)
at Window.close (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/browser/Window.js:362:29)
at JSDOMEnvironment.dispose (/Users/Ben/React/subway-checker/node_modules/jest-environment-jsdom/build/index.js:44:19)
at Promise.resolve.then (/Users/Ben/React/subway-checker/node_modules/jest/node_modules/jest-cli/build/runTest.js:102:17)
at process._tickCallback (internal/process/next_tick.js:109:7)
config:
{ adapter: [Function: xhrAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers: { Accept: 'application/json, text/plain, */*' },
method: 'get',
url: './MockPBufData.txt',
data: undefined },
request:
XMLHttpRequest {
onabort: null,
onerror: [Function: handleError],
onload: null,
onloadend: null,
onloadstart: null,
onprogress: null,
ontimeout: [Function: handleTimeout],
upload:
XMLHttpRequestUpload {
onabort: null,
onerror: null,
onload: null,
onloadend: null,
onloadstart: null,
onprogress: null,
ontimeout: null,
_ownerDocument: [Object] },
onreadystatechange: [Function: handleLoad] },
response: undefined }
expect(object)[.not].toHaveProperty(路径,值)
预期对象是一个对象。收到:
未定义:未定义
at Object..it(src/tests/api.test.js:12:37)
在Promise.resolve.then.el(node_modules/p-map/index.js:42:16)
在进程中。_tick回调(内部/process/next_tick.js:109:7)
{错误:网络错误
在createError(/Users/Ben/React/subway checker/node_modules/axios/lib/core/createError.js:16:15)
在XMLHttpRequest.handleError[as-onerror](/Users/Ben/React/subway-checker/node_-modules/axios/lib/adapters/xhr.js:87:14)
在XMLHttpRequest.callback.(匿名函数)(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget impl.js:289:32)
在invokeEventListeners(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget impl.js:219:27)
在invokeInlineListeners(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget impl.js:166:7)
在EventTargetImpl.发布时(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget impl.js:122:7)
在EventTargetImpl.dispatchEvent(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget impl.js:87:17)
在XMLHttpRequest.dispatchEvent(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35)
在XMLHttpRequest.abort(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/XMLHttpRequest.js:405:16)
在Object.abort(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/xhr utils.js:315:13)
在RequestManager.close(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/living/nodes/Document impl.js:146:21)
在Window.close(/Users/Ben/React/subway checker/node_modules/jsdom/lib/jsdom/browser/Window.js:362:29)
在JSDOMEnvironment.dispose(/Users/Ben/React/subway checker/node_modules/jest-environment jsdom/build/index.js:44:19)
在Promise.resolve.then(/Users/Ben/React/subway checker/node_modules/jest/node_modules/jest cli/build/runTest.js:102:17)
在进程中。_tick回调(内部/process/next_tick.js:109:7)
配置:
{适配器:[函数:xhrAdapter],
transformRequest:{0':[函数:transformRequest]},
transformResponse:{0':[函数:transformResponse]},
超时:0,
xsrfCookieName:'XSRF-TOKEN',
xsrfHeaderName:'X-XSRF-TOKEN',
maxContentLength:-1,
validateStatus:[函数:validateStatus],
标题:{Accept:'application/json,text/plain,*/*'},
方法:“get”,
url:“./MockPBufData.txt”,
数据:未定义},
请求:
XMLHttpRequest{
onabort:null,
OneError:[函数:handleError],
onload:null,
onloadend:null,
onloadstart:null,
onprogress:null,
ontimeout:[函数:handleTimeout],
上传:
XMLHttpRequestUpload{
onabort:null,
onerror:null,
onload:null,
onloadend:null,
onloadstart:null,
onprogress:null,
ontimeout:null,
_ownerDocument:[对象]},
onreadystatechange:[函数:handleLoad]},
响应:未定义}
您无法访问函数的内部变量(RequestMock.feed
)。。。该函数实际上返回它,因此您只需要以下内容:
expect(RequestMock()).toHaveProperty('header.gtfs\u realtime\u version','1.0')代码>您无法访问函数的内部变量(RequestMock.feed
)。。。该函数实际上返回它,因此您只需要以下内容:
expect(RequestMock()).toHaveProperty('header.gtfs\u realtime\u version','1.0')代码>做了更改,我仍然会收到相同的错误。做了更改,我仍然会收到相同的错误。
import React from 'react';
import RequestMock from '../mocks/RequestMock';
it('makes decoded data accessible from RequestMock.feed', () => {
expect(RequestMock.feed).toHaveProperty('header.gtfs_realtime_version', '1.0');
});
expect(object)[.not].toHaveProperty(path, value)
Expected object to be an object. Received:
undefined: undefined
at Object.<anonymous>.it (src/tests/api.test.js:12:37)
at Promise.resolve.then.el (node_modules/p-map/index.js:42:16)
at process._tickCallback (internal/process/next_tick.js:109:7)
{ Error: Network Error
at createError (/Users/Ben/React/subway-checker/node_modules/axios/lib/core/createError.js:16:15)
at XMLHttpRequest.handleError [as onerror] (/Users/Ben/React/subway-checker/node_modules/axios/lib/adapters/xhr.js:87:14)
at XMLHttpRequest.callback.(anonymous function) (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:289:32)
at invokeEventListeners (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:219:27)
at invokeInlineListeners (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:166:7)
at EventTargetImpl._dispatch (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:122:7)
at EventTargetImpl.dispatchEvent (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:87:17)
at XMLHttpRequest.dispatchEvent (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:61:35)
at XMLHttpRequest.abort (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:405:16)
at Object.abort (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/xhr-utils.js:315:13)
at RequestManager.close (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/living/nodes/Document-impl.js:146:21)
at Window.close (/Users/Ben/React/subway-checker/node_modules/jsdom/lib/jsdom/browser/Window.js:362:29)
at JSDOMEnvironment.dispose (/Users/Ben/React/subway-checker/node_modules/jest-environment-jsdom/build/index.js:44:19)
at Promise.resolve.then (/Users/Ben/React/subway-checker/node_modules/jest/node_modules/jest-cli/build/runTest.js:102:17)
at process._tickCallback (internal/process/next_tick.js:109:7)
config:
{ adapter: [Function: xhrAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers: { Accept: 'application/json, text/plain, */*' },
method: 'get',
url: './MockPBufData.txt',
data: undefined },
request:
XMLHttpRequest {
onabort: null,
onerror: [Function: handleError],
onload: null,
onloadend: null,
onloadstart: null,
onprogress: null,
ontimeout: [Function: handleTimeout],
upload:
XMLHttpRequestUpload {
onabort: null,
onerror: null,
onload: null,
onloadend: null,
onloadstart: null,
onprogress: null,
ontimeout: null,
_ownerDocument: [Object] },
onreadystatechange: [Function: handleLoad] },
response: undefined }