使用jquery和Jest测试获取数据的异步函数

enyaitl3  于 2023-04-10  发布在  Jest
关注(0)|答案(1)|浏览(186)

我正在尝试测试一个异步函数,它从JSON文件中获取数据并将其存储在变量中
我正在尝试测试的函数(存在于registration.js中):

async function readJSONFile(url) {
    const data = await $.getJSON(url);
    return data;
}

let returnedData = await readJSONFile(testURL);

module.exports = readJSONFile;

如何使用jest创建一个测试文件来测试这个函数?
我尝试了这个代码进行测试,但由于某种原因,它没有阅读主JavaScript文件

const readJSONFile = require("../JS/registration.js").readJSONFile;

test("check if the data is retrieved", async () => {
    const testData = {
        "courseName" : {
            "instrName" : "profName",
            "location" : "classLocation",
            "timings" : "classTimings"
        }
    }

    const data = await  $.getJSON(testURL);
    expect(data).toBe(testData)
});

错误:

SyntaxError: await is only valid in async functions and the top level bodies of modules

项目结构:

| Jest Testing
    | registration.test.js

| JS
    | registration.js
j8ag8udp

j8ag8udp1#

require需要module路径,返回exports对象。
您已经将属性名称附加到路径。
你也没有考虑到这两个JS文件在不同的目录中。

const readJSONFile = require("../JS/registration.js").readJSONFile;

相关问题