问题标签 [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.
node.js - Proxyquire : 代理需要 yargs 并将值传递给它
我有一个如下 src/example.js 的代码:
上面的单元测试用例,我正在尝试编写:
当我运行上面我得到以下错误:
我在这里做错了什么?
编辑:很明显,如果我写我的 src/example.js 如下:
并编写测试用例如下:
有用!去搞清楚!这可能是因为我在 yargs 中设置了默认值。但是如果不进行上述更改,我不知道如何使其正常工作!
javascript - 跨整个项目的存根请求
我正在为一个小型 REST 库编写测试,该库在请求库之上实现 OAuth 的刷新授权。作为其功能的一部分,它提供了一个重试功能,其中包含以下内容rest.js
:
auth.renew
所做的是使用内部已知的刷新令牌中的信息向令牌提供者发布headers
。重要的一点是它通过使用request.post
将递归事件处理程序向下传递到请求库来做到这一点。
自然,当我测试这个时,我不想传出 HTTP 调用。所以我使用 sinon 将它们剔除:
问题是它很auth.renew
高兴require('request')
自己继续,因此永远看不到我的存根。所以我想我的问题是:我如何auth
使用我的存根request
而不是它自己的?
我知道 sinon 可以存根 XHR,但这似乎是我想要的很多低级工作。
javascript - Proxyquire 显示错误“找不到模块”
我正在尝试使用proxyquire替换私有函数以在我的 Meteor 应用程序中进行测试。
流星 1.6.1
流星测试:mocha@1.1.2
在我的 parentFunction.js 中:
在我的测试文件中:
parentFunction.js 与我的测试文件在同一个文件夹中,只是为了仔细检查路径,我确保它有效:
但是当我运行测试时,我看到了一个错误:
我究竟做错了什么?我试过绝对路径,没用。据我从文档中可以看出,文件中需要 proxiquire 的相对路径应该没问题。
谢谢你的帮助!
node.js - proxyquire 不存根静态方法 - nodejs
我有两个类 ValidationHelper, BeneficiaryHelper,每个类都有一个静态方法,我试图使用 proxyquire 来模拟它,但是在运行 npm test 时它给了我错误:
TypeError:无法读取未定义的属性“checkMandatory”
打字稿文件代码:
此文件的单元测试代码:
testing - 无法从 proxyquire 返回新对象
我正在尝试使用 proxyquire 测试对象。该对象是一个简单的 JavaScript / TypeScript 类,具有一些依赖项。我正在使用带有 sinon 的 proxyquire 来覆盖这些依赖项,并且工作正常。但我无法创建该类的新实例来在测试程序上运行它的方法。
我试图在返回新实例的类上创建一个静态方法,但错误是“Proxy.create is not a function”
node.js - 节点 JS 错误:找不到模块 './services'
我正在尝试使用 sinon 创建存根来运行测试,但它会抛出错误。它试图找到一个模块服务并说找不到该模块,但我将 services.js 与测试放在同一文件夹中。所以我不确定它为什么会失败。有人可以告诉我代码中有什么问题。
以下是我认为从 car-lookup.controller.js 导出服务的方式
下面是汽车查找 controller.js
如果您在第一行看到它正在尝试导入服务并且服务不是直接的 js 文件。我在 ../../ 目录中有一个 index.js 文件,这就是第一行所指的内容。目录结构也在下面。请指教。
node.js - 如何模拟路线中使用的 knex 函数
我有这个按环境配置knex的功能
我在我的 route.js 中使用了这个函数
我的 route.js 测试文件
当我执行测试文件时,knexConnection.raw 被存根并显示当前时间。并且测试失败。它说存根从未被调用过。
我已经尝试了几天,它仍然没有工作。知道如何存根 knex 查询吗?
更新
在挣扎了几个小时之后,我认为存根被跳过了,因为应用程序在存根之前被实例化。所以存根永远不会被加载。
我的服务器结构有这个结构。
-- 服务器.js
这是我的 index.js,因为我在服务器应用程序中动态加载所有路由。
我的模拟仍然被跳过,应用程序首先被调用。
unit-testing - 尝试从获取中模拟响应主体以进行单元测试
我对 sinon 和 proxyquire 还很陌生,我想我已经阅读了 SO 上的所有答案,但我仍然没有找到我需要的东西。无论如何,这是我的代码的净化版本。
这很简单,它使用 node-fetch 来访问一个 url,然后在请求成功或失败时执行一些操作。这是我的测试,让我们为 fetch 设置模拟:
所以 fetch 调用现在返回validResponse而不是访问服务器。这是我的测试:
这失败了,因为 res 只是一个具有状态和数据的对象,它不是具有 Body 等的正确响应......我们的其余代码使用node-mocks-http但所有使用该模块的测试都直接命中了 url ,而不是间接地,通过获取,就像我在上面所做的那样。
如何创建模拟响应以适应上述测试,或者我应该使用不同的方法?
node.js - 使用 sinon stub promise 和 axios 进行单元测试
我正在尝试使用 sinon 测试我的节点 js api。我有一个 返回 appDetails的函数appRequest() ;但我无法得到结果。我正在使用 proxyquire 来获得结果,但它不起作用。
appService.js
}
app.test.js
describe("应用请求", function() {
});
node.js - 无法使用 sinon 和 proxyquire 模拟构造函数
我看过几个类似的问题,但没有一个案例适合我的问题。我正在尝试模拟一个构造函数,我在其他测试中已经完成了,但是在使用 google-auth-library 的情况下我无法让它工作
代码.js
测试.js