gpt4 book ai didi

javascript - 使用 Jest,获取内部函数

转载 作者:行者123 更新时间:2023-11-30 06:51:40 25 4
gpt4 key购买 nike

我正在重新审视 Jest,因为它收到了很多好评。然而,努力寻找访问内部功能以测试它们的好方法。

如果我有:

const Add2 = (n)=> n+2;

export default (list)=>{
return list.map(Add2());
}

然后,如果我使用 Jasmine 或 Mocha,我会使用 rewire 或 babel-plugin-rewire 来获取内部 Add2 函数,如下所示:

var rewire = require('rewire');
var Add2 = rewire('./Adder').__get__('Add2');

it('Should add 2 to number', ()=>{
let val = Add2(1);
expect(val).toEqual(3);
});

然而,它们似乎都不能与 jest 一起工作,虽然看起来像一个很好的模拟语法,但我看不到任何获得内部函数的方法。

有什么好的方法可以做到这一点吗?我在 jest api 或设置上遗漏了什么?

最佳答案

如果您愿意在每次测试前使用 babel 转换您的文件,您实际上可以实现这一点。这是您需要做的(我假设您知道如何启动和运行 babel 本身,如果不知道的话,有多个教程可供使用):

首先,我们需要安装 babel-jest plugin开 Jest ,和babel-plugin-rewire对于巴别塔:

npm install --save-dev babel-jest babel-plugin-rewire

然后你需要添加一个.babelrc文件到你的根目录。它应该看起来像这样:

{
"plugin": ["rewire"]
}

应该就是这样(假设您正确设置了 babel)。 babel-jest 会自动获取 .babelrc,所以不需要额外的配置,除非你已经有其他的转换。Babel 将在 jest 运行它们之前转换所有文件,而 speedskate 的 rewire 插件将负责通过 rewire API 公开模块的内部结构。

关于javascript - 使用 Jest,获取内部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41803800/

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