短版:
我正在使用 vue-test-utils
为我的 Vue 组件编写测试用例和 jest
.
我正在尝试创建一个 Response
对象在我的一个测试用例中,但我不断收到错误ReferenceError: Response is not defined
长版
当使用 jest 调度 Vuex 操作时,我试图模拟 API 响应。
我已经创建了一个这样的 Vuex Action
let fakeAccountList = [
{"id":"abcd","title":"Random Account 1"},
{"id":"pqrs","title":"Random Account 2"}
]
actions = {
getAccounts: jest.fn(()=>{
return new Promise((resolve, reject)=>{
resolve(mockResponse(200,'ok',fakeAccountList))
})
})
}
getAccounts
action 返回一个解析为帐户列表的 Promise。 mockResponse
功能如图:mockResponse = (status, statusText, response) => {
return new Response(response, {
status: status,
statusText: statusText,
headers: {
'Content-type': 'application/json'
}
});
};
当
mockResponse
被调用,我收到错误 ReferenceError: Response is not defined
我发现了这个非常古老的问题:
https://github.com/facebook/jest/issues/930
评论表明它已修复,但是对我不起作用。我不想导入额外的库,例如
isomorphic-fetch
只是为了这个。这是我的
devDependencies
在 package.json
:"devDependencies": {
"@vue/cli-plugin-babel": "3.0.3",
"@vue/cli-plugin-e2e-cypress": "3.0.3",
"@vue/cli-plugin-eslint": "3.0.3",
"@vue/cli-plugin-unit-jest": "3.0.3",
"@vue/cli-service": "3.0.3",
"@vue/test-utils": "1.0.0-beta.25",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "23.6.0",
"less": "3.0.4",
"less-loader": "4.1.0",
"lodash": "4.17.10",
"node-sass": "4.9.2",
"sass-loader": "7.0.3",
"vue-template-compiler": "2.5.16",
}
任何帮助,将不胜感激。提前致谢
最佳答案
我正在使用 React 应用程序,只需在您的模拟文件中添加以下语句即可解决该问题。希望这可能对您或其他人有所帮助。import 'isomorphic-fetch'
关于vuejs2 - 引用错误 : Response is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420318/