我有一个笑话我如何导入到多个测试文件

Posted

技术标签:

【中文标题】我有一个笑话我如何导入到多个测试文件【英文标题】:I have a jest mock how can i import to multiple test files 【发布时间】:2022-01-04 14:25:55 【问题描述】:

我正在为一些使用 Next/Image 的组件编写一些测试。当我不断收到错误时,我决定像这样模拟模块:

jest.mock(
    `next/image`,
    () =>
        function Image( src, alt ) 
            // eslint-disable-next-line @next/next/no-img-element
            return <img src=src alt=alt />;
        ,
);

到目前为止一切顺利,效果很好。但是我有多个使用 next/image 的组件,我需要在这些测试文件中使用这个模拟。我目前的解决方案是复制意大利面,但这很愚蠢。我试图创建一个模块,我可以将其包含在 config/setup.js 中或导入它。但我似乎无法弄清楚该怎么做。

非常感谢您的帮助,我很确定这是一件简单的事情,我可能会在周五午餐后放屁。

【问题讨论】:

你尝试了什么?当你尝试它时发生了什么? 这能回答你的问题吗? Jest - one function mocks file for multiple test files 【参考方案1】:

您可以通过putting a mock 进入__mocks__ 文件夹来执行此操作。

如文档中所述:

手动模拟是通过在紧邻模块的__mocks__/ 子目录中编写模块来定义的。例如,要在模型目录中模拟一个名为 user 的模块,请创建一个名为 user.js 的文件并将其放在 models/__mocks__ 目录中。

【讨论】:

以上是关于我有一个笑话我如何导入到多个测试文件的主要内容,如果未能解决你的问题,请参考以下文章

如何从 VSCode 中的多个位置运行笑话测试

笑话:节点模块依赖使用导入语句并导致测试崩溃

运行笑话测试时出现意外的令牌导入错误

试图解析 .css 的笑话

带有笑话的Vue Cli单元测试如何运行单个测试

如何轻松将多个 sql 文件导入 MySQL 数据库?