问题标签 [rewire]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
794 浏览

node.js - 如何使用 sinon 模拟另一个文件中定义的常量并重新布线?

我是 JS 测试的初学者,当我尝试在需要测试的文件中模拟常量的值时遇到问题。

我有以下文件

所以,我想模拟MultiAccountInstance常量。我一直在尝试使用 Simon 并重新布线,但是使用下面的脚本我让它在这里抛出异常无法读取上面脚本中未定义异常的属性 'then'。

我怎样才能做到这一点?我也尝试使用存根,但我遇到MultiAccountInstance.all 不是函数的错误

是这样的

你知道我做错了什么吗?

0 投票
1 回答
245 浏览

node.js - NodeJS:类调用构造函数和另一个类的函数的单元测试

我需要为以下classA编写一个单元测试。我不想测试 methodA 而是设置一个虚拟方法:

我尝试使用重新布线:

有没有更好的方法来实现我的目标?

谢谢!

0 投票
1 回答
83 浏览

javascript - 非导出函数的 Mocha 单元测试返回“xx 不是函数”

我正在尝试使用 mocha 对非导出函数运行单元测试,但它给出了错误“xx 不是函数”。示例结构类似于 ff 代码,我想在其中测试函数 isParamValid。settings.js 中的代码格式已经存在于我们的系统中,所以我无法对其进行重构。

我已经尝试了 ff 代码来测试它,但是 mocha 给出了错误 ReferenceError: isParamValid is not defined

0 投票
0 回答
2210 浏览

javascript - 使用 jest、jsdom 和 rewire 时出现 ReferenceError 'navigator is not defined'

我被一个开玩笑的测试设置困住了。我想测试一些客户端代码,一个电子预加载脚本,准确地说,我想使用 rewire 来测试未导出的方法。

被测脚本依赖于另一个访问window.navigator. 我可以测试脚本,但是当我使用它时,它在第一行出现错误require而失败。ReferenceError: navigator is not defineddom.jsrewire

这是显示错误的最小设置。我不使用 jest 配置,因为它默认为jsdom测试环境。

dom.js

index.js

index.spec.js

看起来好像rewire使用了不同的global,不再具有jsdom环境的(或还没有?)(如global.window.navigatorglobal.navigator)。

非常感谢任何帮助,通常我会在谷歌上找到几乎所有问题的解决方案,但这次我迷路了。

要重现,请将三个文件复制到一个文件夹中,然后执行npm init, npm install jest rewire, npx jest.

0 投票
1 回答
51 浏览

javascript - 我如何获得所有内容?

我有一个节点模块,我正在尝试为其编写单元测试。这是模块的一部分:

当我运行包括这个在内的测试时:

但是,在运行测试之后,_write 函数似乎仍然没有出现在覆盖结果中。有没有办法让我们开玩笑地理解所有代码行都在练习?请注意,“Uncovered Line #s”指的是 _write 函数的确切行号。我曾希望通过重新连接该功能,这将使我的覆盖率达到 100%。

在此处输入图像描述

0 投票
1 回答
227 浏览

node.js - 单元测试 - 模拟方法中引用的配置文件

我正在尝试测试一种方法,该方法包含对全局变量的引用,该全局变量包含从 json 文件中获取的一些配置。

这是它的测试,作为 serviceConfig 所需的配置 json 文件:

这是 conf.json 文件,它在需要测试的方法中“提供”配置变量:

但我明白TypeError: Cannot stub non-existent own property config 了我做错了什么?

这些是我正在使用的模块:

0 投票
1 回答
112 浏览

node.js - 重新连接私有函数 p0,但显示:p0 未定义

main.js是这样的

测试代码

ReferenceError: p0 未定义

我认为 rewire 可以访问私有功能,请问如何解决这个问题?谢谢 !

0 投票
0 回答
167 浏览

javascript - __Rewire__ is not a function

Using Rewire for testing..

Rewire is failing to rewire, and I'm wondering why.

Here is an example of rewire failing:

A file has a few exported functions...

In a test file...

_get__(...).__Rewire__ is not a function

Why?

0 投票
1 回答
279 浏览

javascript - 模块变量在 Jest 中的测试之间不清楚

我希望能够隔离在测试两个myVar相互独立地修改相同状态变量的函数时似乎相关的副作用。

例子.js

例子.test.js

输出

如果我分别运行每个测试,两者都可以正常工作。问题似乎出在运行整个测试套件时。这是我在更复杂的应用程序中使用的代码中遇到的相同问题的简化。任何想法为什么以及如何解决?

babel.config.json

0 投票
1 回答
1112 浏览

typescript - babel-plugin-rewire 在 Typescript 项目中不起作用

注意:我的目标是为项目带来类似Rewire的功能。无论是使用 Rewire 包、babel-plugin-rewire 还是任何其他满足我目标的库。考虑到这一点,这里是细节:

我正在尝试使用 Mocha 和 Chai 设置一个新的 Typescript 项目。其中一个单元测试要求我使用rewire,它不适用于 ES6 导入。所以,我最终使用babel-plugin-rewire. 但是,我无法让它工作。例如,以下行:

失败TypeError: _get__(...).__get__ is not a function

我在这里设置了一个简约的可复制公共 repo:https ://github.com/naishe/typescript-babel如果你想玩它。

这是最小的项目设置:

src/hello.ts

测试/index.spec.ts

测试/babel-register.js

babelrc.json

babel.config.js

mocharc.json

package.json 的相关部分

npm test发出这个:

我已经对 babel-plugin-rewire提出了担忧,但它似乎非常沉默。所以,我想知道是否还有其他方法可以实现这一目标?