问题标签 [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 投票
1 回答
156 浏览

node.js - Proxyquire : 代理需要 yargs 并将值传递给它

我有一个如下 src/example.js 的代码:

上面的单元测试用例,我正在尝试编写:

当我运行上面我得到以下错误:

我在这里做错了什么?

编辑:很明显,如果我写我的 src/example.js 如下:

并编写测试用例如下:

有用!去搞清楚!这可能是因为我在 yargs 中设置了默认值。但是如果不进行上述更改,我不知道如何使其正常工作!

0 投票
1 回答
113 浏览

javascript - 跨整个项目的存根请求

我正在为一个小型 REST 库编写测试,该库在请求库之上实现 OAuth 的刷新授权。作为其功能的一部分,它提供了一个重试功能,其中包含以下内容rest.js

auth.renew所做的是使用内部已知的刷新令牌中的信息向令牌提供者发布headers。重要的一点是它通过使用request.post将递归事件处理程序向下传递到请求库来做到这一点。

自然,当我测试这个时,我不想传出 HTTP 调用。所以我使用 sinon 将它们剔除:

问题是它很auth.renew高兴require('request')自己继续,因此永远看不到我的存根。所以我想我的问题是:我如何auth使用我的存根request而不是它自己的?

我知道 sinon 可以存根 XHR,但这似乎是我想要的很多低级工作。

0 投票
0 回答
382 浏览

javascript - Proxyquire 显示错误“找不到模块”

我正在尝试使用proxyquire替换私有函数以在我的 Meteor 应用程序中进行测试。

流星 1.6.1

流星测试:mocha@1.1.2

在我的 parentFunction.js 中:

在我的测试文件中:

parentFunction.js 与我的测试文件在同一个文件夹中,只是为了仔细检查路径,我确保它有效:

但是当我运行测试时,我看到了一个错误:

我究竟做错了什么?我试过绝对路径,没用。据我从文档中可以看出,文件中需要 proxiquire 的相对路径应该没问题。

谢谢你的帮助!

0 投票
1 回答
362 浏览

node.js - proxyquire 不存根静态方法 - nodejs

我有两个类 ValidationHelper, BeneficiaryHelper,每个类都有一个静态方法,我试图使用 proxyquire 来模拟它,但是在运行 npm test 时它给了我错误:

TypeError:无法读取未定义的属性“checkMandatory”

打字稿文件代码:

此文件的单元测试代码:

0 投票
1 回答
387 浏览

testing - 无法从 proxyquire 返回新对象

我正在尝试使用 proxyquire 测试对象。该对象是一个简单的 JavaScript / TypeScript 类,具有一些依赖项。我正在使用带有 sinon 的 proxyquire 来覆盖这些依赖项,并且工作正常。但我无法创建该类的新实例来在测试程序上运行它的方法。

我试图在返回新实例的类上创建一个静态方法,但错误是“Proxy.create is not a function”

0 投票
1 回答
2106 浏览

node.js - 节点 JS 错误:找不到模块 './services'

我正在尝试使用 sinon 创建存根来运行测试,但它会抛出错误。它试图找到一个模块服务并说找不到该模块,但我将 services.js 与测试放在同一文件夹中。所以我不确定它为什么会失败。有人可以告诉我代码中有什么问题。

以下是我认为从 car-lookup.controller.js 导出服务的方式

下面是汽车查找 controller.js
如果您在第一行看到它正在尝试导入服务并且服务不是直接的 js 文件。我在 ../../ 目录中有一个 index.js 文件,这就是第一行所指的内容。目录结构也在下面。请指教。

0 投票
1 回答
1312 浏览

node.js - 如何模拟路线中使用的 knex 函数

我有这个按环境配置knex的功能

我在我的 route.js 中使用了这个函数

我的 route.js 测试文件

当我执行测试文件时,knexConnection.raw 被存根并显示当前时间。并且测试失败。它说存根从未被调用过。

我已经尝试了几天,它仍然没有工作。知道如何存根 knex 查询吗?

更新

在挣扎了几个小时之后,我认为存根被跳过了,因为应用程序在存根之前被实例化。所以存根永远不会被加载。

我的服务器结构有这个结构。

-- 服务器.js

这是我的 index.js,因为我在服务器应用程序中动态加载所有路由。

我的模拟仍然被跳过,应用程序首先被调用。

0 投票
1 回答
776 浏览

unit-testing - 尝试从获取中模拟响应主体以进行单元测试

我对 sinon 和 proxyquire 还很陌生,我想我已经阅读了 SO 上的所有答案,但我仍然没有找到我需要的东西。无论如何,这是我的代码的净化版本。

这很简单,它使用 node-fetch 来访问一个 url,然后在请求成功或失败时执行一些操作。这是我的测试,让我们为 fetch 设置模拟:

所以 fetch 调用现在返回validResponse而不是访问服务器。这是我的测试:

这失败了,因为 res 只是一个具有状态和数据的对象,它不是具有 Body 等的正确响应......我们的其余代码使用node-mocks-http但所有使用该模块的测试都直接命中了 url ,而不是间接地,通过获取,就像我在上面所做的那样。

如何创建模拟响应以适应上述测试,或者我应该使用不同的方法?

0 投票
0 回答
710 浏览

node.js - 使用 sinon stub promise 和 axios 进行单元测试

我正在尝试使用 sinon 测试我的节点 js api。我有一个 返回 appDetails的函数appRequest() ;但我无法得到结果。我正在使用 proxyquire 来获得结果,但它不起作用。

appService.js

}

app.test.js

describe("应用请求", function() {

});

0 投票
1 回答
1865 浏览

node.js - 无法使用 sinon 和 proxyquire 模拟构造函数

我看过几个类似的问题,但没有一个案例适合我的问题。我正在尝试模拟一个构造函数,我在其他测试中已经完成了,但是在使用 google-auth-library 的情况下我无法让它工作

代码.js

测试.js