问题标签 [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 回答
603 浏览

javascript - 重新连接私有 Typescript 类方法

我正在尝试为我的 Node.js 模块使用 Typescript 为我的类中的一些私有方法编写单元测试。我尝试使用rewire,但它无法访问任何方法(甚至是公共方法)。这是我的设置:

我的班级.ts

测试.ts

我尝试在 Typescript 文件和编译的 JS 文件上使用 rewire,但我得到了同样的错误:

我正在使用具有以下配置的 Mocha:

这个问题有什么解决办法吗?

0 投票
0 回答
17 浏览

javascript - 使用 rewire 模拟 XML 响应

使用 rewire 为下面的代码编写单元测试用例的意图。但是我对“模拟”项目功能一无所知。非常感谢这方面的任何帮助。代码、测试用例和错误详细信息等详细信息如下。如果您需要更多详细信息,请告诉我

如何在 body.item(0) 函数中模拟项目?

错误:

0 投票
0 回答
59 浏览

node.js - Rewire 是否设置了当前运行的模块变量以及指定的模块变量?

因此,我正在使用 Rewire with Mocha 进行一些测试,并且我注意到对我来说似乎很奇怪的行为。usingmyModule.__set__()似乎实际上在指定的模块(myModule)中设置了指定的变量,并且在当前模块的全局范围内(运行的那个__set__())。例如:

此代码在运行后运行mocha test

测试.js:

测试2.js:

在这里,我希望“testing5”实际记录到控制台,但 3 个“测试”只记录在间谍中,并且 callCount 等于 3。但这不是正在发生的事情。“testing5”没有被记录,而是被记录到那个 sinon 间谍中,并且测试失败了,因为 callCount 是 4,而不是 3。对我来说,这似乎不是故意的。有什么我做错了吗?

0 投票
0 回答
39 浏览

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 等

仅供参考,该项目在打字稿中

0 投票
0 回答
14 浏览

node.js - TypeError: roomsRepo.addOneRoom 不是函数

所以我正在使用 MochaJS、SinonJS、Chai、assert 和 rewire 对我的应用程序进行单元测试。我收到以下错误。我正在尝试测试作为 POST 方法中的参数传递的 POST 方法的处理程序。我不认为我正确地存根和模拟。

我正在测试的代码是这个:

}

在 post 方法中作为参数传递的函数:

我的单元测试代码如下:

})

0 投票
0 回答
38 浏览

jestjs - 如何使用 rewire 和 jest 与非导出类扩展另一个类

我有两个文件

两者都没有export,它们是全局类

我想jest用于测试rewire

我正在尝试这样做

但我收到一个错误

测试具有嵌套依赖项的全局类和函数的正确方法是什么。

注意 我有一个很大的应用程序,不能export在全局函数、变量和类前面添加。

我不想更改目录.js中的文件src

0 投票
0 回答
82 浏览

node.js - 重新连接 5.0.0:TypeError:赋值给常量变量

在主代码中,

在我的单元测试中,我有这个

运行单元测试时,我在此行收到以下错误

TypeError:分配给常量变量。

难题是,我检查了https://github.com/jhnns/rewire/issues/79 该问题已关闭,似乎已在 4.0.1 中修复。我的版本是 5.0.0。

任何人都知道如何正确修复它?我不想从 const 更改为 let 在主代码中。谢谢 !

0 投票
0 回答
151 浏览

javascript - babel-plugin-rewire 无法正常使用 React Native 项目

我目前正在创建一个小型 React Native 应用程序。为了测试,我声明使用 babel-plugin-rewire 来访问未导出的函数。现在我的所有测试都运行良好,但如果我尝试运行我的应用程序,我会收到以下错误:

我的项目是用 JS 编写的。

.babelrc:

我已经搜索过,但从未找到有帮助或与 babel-plugin-rewire 相关的东西。

已经感谢您的帮助。

干杯

0 投票
1 回答
35 浏览

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 文件?有不同的解决方案吗?

0 投票
0 回答
42 浏览

node.js - 用 sinon 存根重新连接 __set__ 而不替换原始函数

试图理解 rewire/sinon 但无法弄清楚为什么这个基本示例不起作用。我希望输出是“调用假”-1,但我得到的是:

调用原始 2

main.js

计算.js

请注意,如果我不使用 rewire 并且只存根原始模块但试图理解为什么这个 rewire 示例不起作用,它可以正常工作。