Javascript 如何在React单元测试中插入真正的文件对象

Javascript 如何在React单元测试中插入真正的文件对象,javascript,reactjs,typescript,jestjs,react-testing-library,Javascript,Reactjs,Typescript,Jestjs,React Testing Library,我有一个函数,它接受文件对象作为输入参数。通常,函数从用户选择文件的表单元素获取它 函数将输入的文件转换为图像,对其进行操作,然后返回一个blob。转换是通过image.src=URL.createObjectURL(文件)完成的,其中文件是输入文件对象 但是我如何用jest测试真实文件的函数呢?我需要从本地文件系统读取真实映像,并将其传递给该函数。有什么建议吗?您可以使用节点fs.readFileSync读取文件内容并将其放入模拟中。这很有希望,但我需要文件对象。尝试将文件内容读取到fileC

我有一个函数,它接受
文件
对象作为输入参数。通常,函数从用户选择文件的
表单
元素获取它

函数将输入的
文件
转换为
图像
,对其进行操作,然后返回一个blob。转换是通过
image.src=URL.createObjectURL(文件)完成的,其中
文件
是输入
文件
对象


但是我如何用jest测试真实文件的函数呢?我需要从本地文件系统读取真实映像,并将其传递给该函数。有什么建议吗?

您可以使用节点fs.readFileSync读取文件内容并将其放入模拟中。这很有希望,但我需要
文件
对象。尝试将文件内容读取到
fileContents
并创建
新文件([fileContents],'test.jpg',{type:'image/jpeg'})文件{}
。阅读内容是可行的,但我如何才能将其转换为可工作的
文件
对象?您对该对象的具体期望是什么?这个问题没有包含任何信息。Jest使用的是假的DOM,预计它不会像真正的浏览器那样工作,并且会在很多方面失败。如果将其与FileReader一起使用,请首先对其进行模拟。添加了一些有关函数的信息。createObjectURL在假DOM中不可用。看见嘲笑它。