问题标签 [proxyquire]

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 投票
3 回答
1911 浏览

javascript - 实例的存根方法

我有一个 Express 应用程序,当某些端点被击中时,它使用node-slack-sdk向 Slack 发布帖子。我正在尝试为一条路线编写集成测试,其中包括从该库调用一个方法。

我想阻止 Slack 库中某些方法的所有默认行为,并简单地断言这些方法是使用某些参数调用的。

我试图简化问题。如何chat对 an 实例的方法(实际上嵌套在 中)进行存根WebClient,阻止原始功能,并对调用它的参数进行断言?

我已经尝试了很多没有用的东西,所以我正在编辑它并在这里提供一个大大简化的设置:

index.html

index.test.html

与其他示例不同,有几件事使这变得困难。一,我们无法访问web测试中的实例,所以我们不能直接存根方法。第二,该方法隐藏在chat属性中web.chat.postMessage,这也与我在 sinon、proxyquire 等文档中看到的其他示例不同。

0 投票
1 回答
2278 浏览

mocking - How do I stub a module with Jest and Proxyquire?

I want to force node-fetch to be a stub and I'm having a bit of trouble getting it to work. Code:

setup.js:

package.json:

Result:

How can it be failing to load the module that I just loaded 2 lines previous? Is proxyquire not the right module to use here?

I've gotten node-fetch to be a mock in my test but when I run the function in the module (which has const fetch = require('node-fetch'); at the top) it's going to the real module instead of the fake. I've tried using fetch mocking libs like fetch-mock to no avail.

0 投票
1 回答
1542 浏览

javascript - Node.js - 内部带有模拟承诺的功能单元测试

我目前正在用 JavaScript 制作一个小型服务器,作为学习过程的一部分,我正在为这些函数编写单元测试。不幸的是,我在处理承诺的某个测试中遇到了重大困难。下面是路由器模块,带有单独的handlePUT函数,方便测试。

updateUserStatus 函数基本上在数据库中切换布尔值,看起来有点像这样:

至于单元测试,我使用 mocha/chai 和 proxyquire 来创建模拟 updateUserStatus。

每当我尝试运行单元测试时,都会收到错误消息Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.。如果我尝试添加done()它仍然会通过给出错误消息而失败Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.

0 投票
1 回答
1352 浏览

node.js - proxyquire TypeError:数据存储不是构造函数

我正在尝试测试以下代码。

我的测试文件包含

根据[1],这应该是允许的。

[1] https://github.com/thlorenz/proxyquire/issues/63

0 投票
1 回答
255 浏览

javascript - stub doesn't return the resolve data in proxyquire getting undefined

i am not able get the resolved value in the response the promise stub returns undefined

sendOtpStub is called but the value that i get is undefined i need to get the resolved value from the promise.its resolving to undefined am using if am not using the stub its working as expected. if i put sendOtp: otpHelper.sendOtp its working as expected but when i make it as a stub its not returning the resolved value.

0 投票
0 回答
450 浏览

unit-testing - 对 Sequelize Model 的实例进行单元测试

我有以下代码:

现在,我想测试 person.increment() ,其中年龄将添加 15。我有以下代码来转义为模型创建新记录的条件。

我要怎么做?我该怎么做才能测试它?我可以将 sinon.fake() 用于 PersonModel.create 或 PersonModel.update,但我很难测试 Sequelize 模型的实例。

0 投票
1 回答
894 浏览

node.js - mock require of oracledb using proxyquire to unit test node.js app

Please help to fix the below issue:

I am trying to unit test the dbAdapter module using mocha.

dbAdapter to connect to oracle and execute sql commands (dbAdapter.js)

unit test to test the select query: (test.js)

In the above unit test I have used proxyquire so that I can use my mocked oracledbStub instead of oracledb in dbAdapter.js

When I run the unit test I get the below error:

I followed the below blog: http://www.devblogrbmz.com/nodejs-mocking-with-proxyquire/

I believe I might be missing some detail and have been stuck since a day.

0 投票
0 回答
464 浏览

node.js - 存根nodejs proxyquire返回错误:TypeError:无法读取未定义的属性'url'

我的单元测试用例失败,我收到一条错误消息

'TypeError:无法读取未定义的属性'url'。

具有 url 属性的配置文件似乎有问题。请有人帮助我。

0 投票
0 回答
156 浏览

node.js - 使用 proxyquire 模拟具有相同名称和不同参数的函数

我有一个格式如下的文件,它使用了某些模块。

我正在尝试使用 proxyquire 模拟这两个函数,如下所示

由于它包含两个具有相同名称的函数,因此我无法模拟这两个 post 函数,因为函数调用仅转到一个函数(第二个函数)。如何解决这个问题?有人知道吗?我对单元测试和代理查询相当陌生

0 投票
0 回答
330 浏览

javascript - node.js中非导出函数内http post请求的Sinon存根块

我有一个发布请求块,我需要在非导出函数中存根响应,如下所述:

我不想整体上存根并返回 callMicroserive 函数,但需要在函数内部存根 http post 请求。

我尝试使用 sinon 以及 rewire setter 和 getter 方法来实现。但我不能单独使用存根 http 请求块。谁能提供这个问题的代码模板?

代理查询

尝试使用 proxyquire,如下所述:

Sinon 使用Sinon,尝试了以下方法:

也试过

重新接线

使用所有单元包调用 request.post() 时出现错误“无效的 URI / ”。看起来它正在打击服务器以获得实际响应。