【问题标题】:Import a mock JSON file for Jest/Axios upload test为 Jest/Axios 上传测试导入一个模拟 JSON 文件
【发布时间】:2020-07-30 23:49:33
【问题描述】:

我希望测试使用 Jest 发布文件的方法的 Axios 功能。

作为其中的一部分,我想发布一个本地模拟 JSON 文件,这可能吗?

我看不到任何要求或导入 JSON 文件以在 POST 中上传的方法。

// import jsonFileMock from "../__mocks__/jsonFileMock.json"; 
import jsonFileMock = require("../__mocks__/jsonFileMock.json"); 

const apiResponse = await someApiUpload(jsonFileMock); // Doesn't work

【问题讨论】:

    标签: javascript jestjs axios


    【解决方案1】:

    你正在混合 ES6 import 和 commonjs require。试试

    import * as jsonFileMock from "../__mocks__/jsonFileMock.json"
    

    一个 json 文件不能有一个导出语句,所以这就是为什么你必须使用 * as 术语。您也可以直接获取它:

    fetch('../__mocks__/jsonFileMock.json')
      .then( async data => await someApiUpload(data) )
    

    有关导入 json 文件的更多信息,请参阅问题How to import a json file in ecmascript 6?

    【讨论】:

    • 谢谢,我确实阅读了那个帖子,但它更多的是与阅读文件的内容而不是上传文件有关,我现在就试试 fetch。
    • Jest 显然不喜欢 fetch,老实说,我不相信使用通配符 * 和 import 会起作用。
    • 我了解,但您无法上传来自您的 import jsonFileMock = require("../__mocks__/jsonFileMock.json"); 语句的数据,因为该语句对 javascript 没有意义
    • 是的,这也是我要使用它的地方:)
    猜你喜欢
    • 2017-08-16
    • 1970-01-01
    • 2021-03-03
    • 2019-09-19
    • 2020-12-10
    • 2018-03-22
    • 2021-12-03
    • 2019-07-02
    • 2018-03-20
    相关资源
    最近更新 更多