gpt4 book ai didi

javascript - 开 Jest : resolves return undefined from Promise

转载 作者:太空宇宙 更新时间:2023-11-04 02:56:32 24 4
gpt4 key购买 nike

我正在使用 jest 进行测试。我想测试我的函数的返回:

const xml2js = require('xml2js')

const parser = new xml2js.Parser()

function opmlParser(xmlData) {
return new Promise((resolve, reject) => {
parser.parseString(xmlData, (err, data) => {
if (err !== null && data !== null) reject(err)
resolve({})
})
})
}

Promise 解析 {} 以便在简单的测试用例中。

因此,我想测试以下函数,并且希望结果是包含 {} 的 Promise。
我有以下代码:

const fs = require('fs');

test('minimal-opml', () => {
const xmlData = fs.readFileSync('test/opml-parser/opml/test1.opml')
return expect(opmlParser(xmlData)).resolves.toEqual({})
})

正如 Jest 文档所说,我应该在匹配结果之前使用 resolves 语句并使用 return

但是,我遇到了一个问题:

TypeError: Cannot read property 'toEqual' of undefined

resolves 返回 undefined,因此我无法继续测试值。

我尝试添加 global.Promise = require.requireActual('promise'),但仍然不起作用。

你知道我做错了什么吗?

最佳答案

resolves 方法从 20.0.0+ 开始可用。所以它还不可用。 source

这就是它返回未定义的原因。

关于javascript - 开 Jest : resolves return undefined from Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43416569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com