代码之家  ›  专栏  ›  技术社区  ›  Ankit Kante

ReferenceError:未定义响应

  •  2
  • Ankit Kante  · 技术社区  · 6 年前

    短版本:

    vue-test-utils jest

    Response 我的一个测试用例中的一个对象,但我不断得到错误 ReferenceError: Response is not defined

    长版本

    我创建了一个像这样的Vuex操作

    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 操作返回一个承诺,该承诺解析为一个帐户列表。这个 mockResponse 功能如图所示:

    mockResponse = (status, statusText, response) => {
    
      return new Response(response, {
        status: status,
        statusText: statusText,
        headers: {
          'Content-type': 'application/json'
        }
      });
    };
    

    什么时候? 模拟响应 调用时,我得到错误

    我发现了一个非常古老的问题: 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",
      }
    

    任何帮助都将不胜感激。提前谢谢

    0 回复  |  直到 6 年前
        1
  •  2
  •   bhanu prakash    5 年前

    我正在使用一个react应用程序,在您的模拟文件中添加下面的语句就解决了这个问题。希望这对你或其他人有帮助。

    import 'isomorphic-fetch'

    推荐文章