问题标签 [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.
javascript - 重新连接私有 Typescript 类方法
我正在尝试为我的 Node.js 模块使用 Typescript 为我的类中的一些私有方法编写单元测试。我尝试使用rewire
,但它无法访问任何方法(甚至是公共方法)。这是我的设置:
我的班级.ts
测试.ts
我尝试在 Typescript 文件和编译的 JS 文件上使用 rewire,但我得到了同样的错误:
我正在使用具有以下配置的 Mocha:
这个问题有什么解决办法吗?
javascript - 使用 rewire 模拟 XML 响应
使用 rewire 为下面的代码编写单元测试用例的意图。但是我对“模拟”项目功能一无所知。非常感谢这方面的任何帮助。代码、测试用例和错误详细信息等详细信息如下。如果您需要更多详细信息,请告诉我
如何在 body.item(0) 函数中模拟项目?
错误:
node.js - Rewire 是否设置了当前运行的模块变量以及指定的模块变量?
因此,我正在使用 Rewire with Mocha 进行一些测试,并且我注意到对我来说似乎很奇怪的行为。usingmyModule.__set__()
似乎实际上在指定的模块(myModule)中设置了指定的变量,并且在当前模块的全局范围内(运行的那个__set__()
)。例如:
此代码在运行后运行mocha test
:
测试.js:
测试2.js:
在这里,我希望“testing5”实际记录到控制台,但 3 个“测试”只记录在间谍中,并且 callCount 等于 3。但这不是正在发生的事情。“testing5”没有被记录,而是被记录到那个 sinon 间谍中,并且测试失败了,因为 callCount 是 4,而不是 3。对我来说,这似乎不是故意的。有什么我做错了吗?
typescript - 重新连接在用 typescript 编写的 react-native 中引发错误
我正在尝试使用 react-native 中的 rewire 为非导出函数编写单元测试,但是一旦我为 rewire 进行设置并对该文件运行测试,它就会开始显示下面提到的错误
ReferenceError: /Users/tushar/Desktop/wealthO2_clone/WealthO2.ClientPortal.MobileApp/node_modules/react-native/jest/setup.js: 的模块工厂jest.mock()
不允许引用任何超出范围的变量。无效变量访问:获取_允许的对象:Array、ArrayBuffer、Atomics、BigInt、BigInt64Array、BigUint64Array、Boolean、Buffer、DataView、Date、Error、EvalError、FinalizationRegistry、Float32Array 等
仅供参考,该项目在打字稿中
node.js - TypeError: roomsRepo.addOneRoom 不是函数
所以我正在使用 MochaJS、SinonJS、Chai、assert 和 rewire 对我的应用程序进行单元测试。我收到以下错误。我正在尝试测试作为 POST 方法中的参数传递的 POST 方法的处理程序。我不认为我正确地存根和模拟。
我正在测试的代码是这个:
}
在 post 方法中作为参数传递的函数:
我的单元测试代码如下:
})
jestjs - 如何使用 rewire 和 jest 与非导出类扩展另一个类
我有两个文件
两者都没有export
,它们是全局类
我想jest
用于测试rewire
我正在尝试这样做
但我收到一个错误
测试具有嵌套依赖项的全局类和函数的正确方法是什么。
注意
我有一个很大的应用程序,不能export
在全局函数、变量和类前面添加。
我不想更改目录.js
中的文件src
node.js - 重新连接 5.0.0:TypeError:赋值给常量变量
在主代码中,
在我的单元测试中,我有这个
运行单元测试时,我在此行收到以下错误
TypeError:分配给常量变量。
难题是,我检查了https://github.com/jhnns/rewire/issues/79 该问题已关闭,似乎已在 4.0.1 中修复。我的版本是 5.0.0。
任何人都知道如何正确修复它?我不想从 const 更改为 let 在主代码中。谢谢 !
javascript - babel-plugin-rewire 无法正常使用 React Native 项目
我目前正在创建一个小型 React Native 应用程序。为了测试,我声明使用 babel-plugin-rewire 来访问未导出的函数。现在我的所有测试都运行良好,但如果我尝试运行我的应用程序,我会收到以下错误:
我的项目是用 JS 编写的。
.babelrc:
我已经搜索过,但从未找到有帮助或与 babel-plugin-rewire 相关的东西。
已经感谢您的帮助。
干杯
javascript - 如何使用 karma/jasmine 测试未导出的 pre ES6 JS 文件?
我有一个用 ES6 之前的 JS 代码编写的纯 JS 文件,我想使用 karma/jasmine 测试套件进行测试。该文件很大,但我只想让一个超级简单的示例正常工作。
我找到了一个名为rewire的库,我认为它可以让我测试像这样的普通 JS 文件,但我无法让它与我的 karma/jasmine 堆栈一起工作。到目前为止,我已经尝试过:
但我得到这个错误:
这让我觉得它beforeEach(module('rewire'));
正在工作,但由于某种原因它无法运行 rewireModule(也许是因为它是 ES6+)?这是 rewire 的 index.js:
这是我在我的 karmaconfig 文件中导入的内容以及我要测试的文件:
难道我做错了什么?或者我只是无法在 ES6 之前的限制下使用 rewire。有没有人用 karma/jasmine 测试过没有导出的 pre ES6 JS 文件?有不同的解决方案吗?
node.js - 用 sinon 存根重新连接 __set__ 而不替换原始函数
试图理解 rewire/sinon 但无法弄清楚为什么这个基本示例不起作用。我希望输出是“调用假”-1,但我得到的是:
调用原始 2
main.js
计算.js
请注意,如果我不使用 rewire 并且只存根原始模块但试图理解为什么这个 rewire 示例不起作用,它可以正常工作。