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

javascript - 测试调用返回承诺的函数的函数

我有以下形式的代码:

我想测试 sut.methodtotest,但是当我使用 chai、mocha、require、sinon 和 Javascript 社区可以使用的众多其他框架时,我收到一条错误消息:

我的问题是:我如何模拟dependency.methodcall,以便它返回一些模拟数据并且'then'函数可用?

我的测试代码看起来像这样

0 投票
1 回答
2231 浏览

javascript - node.js proxyquire 存根异步函数来自另一个模块所需的模块

待测模块:

测试:

我执行测试时的错误是:

redisClientStub.redisClient.get = function (key, cb) { ^

TypeError:无法设置未定义的属性“获取”

如何正确存根 config.redisClient.get(...) 函数?

0 投票
1 回答
19849 浏览

node.js - 如何在 Express 中模拟中间件以跳过单元测试的身份验证?

我在 Express 中有以下内容

我想覆盖或模拟 isAuthenticated 以返回此

这是我的单元测试:

我曾尝试使用 proxyquire 模拟 index.js - 我想我需要存根路由器?我也尝试在测试中覆盖

必须有一种简单的方法来模拟它,所以我不需要对请求进行身份验证。有任何想法吗?

0 投票
2 回答
2329 浏览

javascript - 防止使用 Jest 调用本地导入的模块

我正在使用的代码:

// redux-reducer.js

// redux-reducer-test.js

问题是本地./effects模块调用反应原生环境配置脚本。

我想以一种不会被执行./effects的方式来模拟模块。./effects

尚未奏效的事情:

  • 使用require.requireMock('effects')方法
  • 让它自动被嘲笑
  • 使用 proxyquire:我认为proxyquire.noCallThru()会阻止./effects运行。似乎 proxyquire 与 Jest 不兼容,并且 Jest 中应该(?)以某种方式具有此功能?

有兴趣听听您的想法并了解有关 Jest 的更多信息!

0 投票
1 回答
735 浏览

unit-testing - 在 proxyquired 对象中存根函数

我想对以下简化模块进行单元测试:

我正在logplease使用Proxyquire替换外部依赖项,效果很好。但是我需要存根two(),因为我想进行单元测试,同时消除在实际代码中运行时产生one()的副作用。two()

我得到的输出:

我期望的输出:

为什么我的存根函数不运行?

0 投票
1 回答
2715 浏览

node.js - Typescript / Node.js - 如何模拟集成测试的传递依赖项?

假设我有一个由控制器处理的 Express 路由。控制器使用服务,服务使用存储库与数据源通信。

我想使用Supertest创建一个集成测试来测试该路由:

我的问题是我需要模拟存储库/数据源来运行测试!我想硬编码一些值,就好像它们来自真实数据源一样。我有哪些选择?

在 Java 世界中,我会在 Spring 或 Guice 中使用依赖注入,并且我会以这种方式将存储库替换为模拟版本。在 Typescript/Node.js 世界中实现这种模拟的模式是什么?

我想使用我可以使用的纯 JavascriptProxyquire及其全局覆盖要求功能,从测试本身模拟存储库。但我不确定这是否适用于 Typescript。

那么,使用 Typescript 和 Node.js 从测试文件中模拟“深层”组件(传递依赖)的推荐方法是什么?

0 投票
1 回答
6569 浏览

javascript - Proxyquire 没有存根我需要的类

我有一个AProvider需要'./b.provider'.

b.provider.js相邻a.provider.js并且看起来像

在我的测试中,我proxyquire用来模拟./b.provider如下:

但是,当我运行测试时BProvider,仍然需要实际的'./b.provider'不是存根,并且 BProvider 的引用会global.stuff.whatever引发错误。

为什么这不起作用?

0 投票
1 回答
1273 浏览

node.js - 使用 mock 对使用请求、管道和流的私有方法进行单元测试

我想在下面的代码中对导出的方法进行单元测试。我想模拟私有方法中的值来控制返回的 Promise 的拒绝/解析。client是已经连接到数据库的node-postgres对象。

我知道我可以使用proxyquire来存根所需的库,但是如何模拟链接的方法,.on('error', ...)以便我可以控制返回的值。.pipe(stream).on('end', ...)

请注意,显示的导出方法是对真实方法的简化,导出 importDomain 是不可行的。

0 投票
2 回答
675 浏览

javascript - 为 async.parallel 编写测试。

我是 javascript 的新手。我正在尝试使用 proxyquire 编写一个基本的单元测试。对于下面的代码。

档案一:

};

文件 A 的单元测试如下所示:

问题是,我无法弄清楚如何测试 fileA 中具有“//做某事”的代码。

欣赏任何指针/代码。

谢谢。

0 投票
1 回答
77 浏览

node.js - 带有 proxyquire 和 sinon 的 google-geocoder

我还是很在学node、js、sinon、proxyquire等。

我有一个使用 google-geocode 模块(https://github.com/bigmountainideas/google-geocoder)的模块,我正在努力编写一个测试来存根它。

这一切都归结为我认为你如何设置它。在 time.js 中,我按照 google-geocoder 文档执行以下操作:

我正在尝试按如下方式进行测试,但出现错误:

时间test.js:

我有点困惑。非常感谢。