问题标签 [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.
node.js - 如何使用 sinon 模拟另一个文件中定义的常量并重新布线?
我是 JS 测试的初学者,当我尝试在需要测试的文件中模拟常量的值时遇到问题。
我有以下文件
所以,我想模拟MultiAccountInstance
常量。我一直在尝试使用 Simon 并重新布线,但是使用下面的脚本我让它在这里抛出异常无法读取上面脚本中未定义异常的属性 'then'。
我怎样才能做到这一点?我也尝试使用存根,但我遇到MultiAccountInstance.all 不是函数的错误
是这样的
你知道我做错了什么吗?
node.js - NodeJS:类调用构造函数和另一个类的函数的单元测试
我需要为以下classA编写一个单元测试。我不想测试 methodA 而是设置一个虚拟方法:
我尝试使用重新布线:
有没有更好的方法来实现我的目标?
谢谢!
javascript - 非导出函数的 Mocha 单元测试返回“xx 不是函数”
我正在尝试使用 mocha 对非导出函数运行单元测试,但它给出了错误“xx 不是函数”。示例结构类似于 ff 代码,我想在其中测试函数 isParamValid。settings.js 中的代码格式已经存在于我们的系统中,所以我无法对其进行重构。
我已经尝试了 ff 代码来测试它,但是 mocha 给出了错误 ReferenceError: isParamValid is not defined
javascript - 使用 jest、jsdom 和 rewire 时出现 ReferenceError 'navigator is not defined'
我被一个开玩笑的测试设置困住了。我想测试一些客户端代码,一个电子预加载脚本,准确地说,我想使用 rewire 来测试未导出的方法。
被测脚本依赖于另一个访问window.navigator
. 我可以测试脚本,但是当我使用它时,它在第一行出现错误require
而失败。ReferenceError: navigator is not defined
dom.js
rewire
这是显示错误的最小设置。我不使用 jest 配置,因为它默认为jsdom
测试环境。
dom.js
index.js
index.spec.js
看起来好像rewire
使用了不同的global
,不再具有jsdom
环境的(或还没有?)(如global.window.navigator
或global.navigator
)。
非常感谢任何帮助,通常我会在谷歌上找到几乎所有问题的解决方案,但这次我迷路了。
要重现,请将三个文件复制到一个文件夹中,然后执行npm init
, npm install jest rewire
, npx jest
.
node.js - 单元测试 - 模拟方法中引用的配置文件
我正在尝试测试一种方法,该方法包含对全局变量的引用,该全局变量包含从 json 文件中获取的一些配置。
这是它的测试,作为 serviceConfig 所需的配置 json 文件:
这是 conf.json 文件,它在需要测试的方法中“提供”配置变量:
但我明白TypeError: Cannot stub non-existent own property config
了我做错了什么?
这些是我正在使用的模块:
node.js - 重新连接私有函数 p0,但显示:p0 未定义
main.js是这样的
测试代码
ReferenceError: p0 未定义
我认为 rewire 可以访问私有功能,请问如何解决这个问题?谢谢 !
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?
javascript - 模块变量在 Jest 中的测试之间不清楚
我希望能够隔离在测试两个myVar
相互独立地修改相同状态变量的函数时似乎相关的副作用。
例子.js
例子.test.js
输出
如果我分别运行每个测试,两者都可以正常工作。问题似乎出在运行整个测试套件时。这是我在更复杂的应用程序中使用的代码中遇到的相同问题的简化。任何想法为什么以及如何解决?
babel.config.json
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提出了担忧,但它似乎非常沉默。所以,我想知道是否还有其他方法可以实现这一目标?