问题标签 [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.
javascript - 测试调用返回承诺的函数的函数
我有以下形式的代码:
我想测试 sut.methodtotest,但是当我使用 chai、mocha、require、sinon 和 Javascript 社区可以使用的众多其他框架时,我收到一条错误消息:
我的问题是:我如何模拟dependency.methodcall,以便它返回一些模拟数据并且'then'函数可用?
我的测试代码看起来像这样
javascript - node.js proxyquire 存根异步函数来自另一个模块所需的模块
待测模块:
测试:
我执行测试时的错误是:
redisClientStub.redisClient.get = function (key, cb) { ^
TypeError:无法设置未定义的属性“获取”
如何正确存根 config.redisClient.get(...) 函数?
node.js - 如何在 Express 中模拟中间件以跳过单元测试的身份验证?
我在 Express 中有以下内容
我想覆盖或模拟 isAuthenticated 以返回此
这是我的单元测试:
我曾尝试使用 proxyquire 模拟 index.js - 我想我需要存根路由器?我也尝试在测试中覆盖
必须有一种简单的方法来模拟它,所以我不需要对请求进行身份验证。有任何想法吗?
javascript - 防止使用 Jest 调用本地导入的模块
我正在使用的代码:
// redux-reducer.js
// redux-reducer-test.js
问题是本地./effects
模块调用反应原生环境配置脚本。
我想以一种不会被执行./effects
的方式来模拟模块。./effects
尚未奏效的事情:
- 使用
require.requireMock('effects')
方法 - 让它自动被嘲笑
- 使用 proxyquire:我认为
proxyquire.noCallThru()
会阻止./effects
运行。似乎 proxyquire 与 Jest 不兼容,并且 Jest 中应该(?)以某种方式具有此功能?
有兴趣听听您的想法并了解有关 Jest 的更多信息!
unit-testing - 在 proxyquired 对象中存根函数
我想对以下简化模块进行单元测试:
我正在logplease
使用Proxyquire替换外部依赖项,效果很好。但是我需要存根two()
,因为我想进行单元测试,同时消除在实际代码中运行时产生one()
的副作用。two()
我得到的输出:
我期望的输出:
为什么我的存根函数不运行?
node.js - Typescript / Node.js - 如何模拟集成测试的传递依赖项?
假设我有一个由控制器处理的 Express 路由。控制器使用服务,服务使用存储库与数据源通信。
我想使用Supertest创建一个集成测试来测试该路由:
我的问题是我需要模拟存储库/数据源来运行测试!我想硬编码一些值,就好像它们来自真实数据源一样。我有哪些选择?
在 Java 世界中,我会在 Spring 或 Guice 中使用依赖注入,并且我会以这种方式将存储库替换为模拟版本。在 Typescript/Node.js 世界中实现这种模拟的模式是什么?
我想使用我可以使用的纯 JavascriptProxyquire
及其全局覆盖要求功能,从测试本身模拟存储库。但我不确定这是否适用于 Typescript。
那么,使用 Typescript 和 Node.js 从测试文件中模拟“深层”组件(传递依赖)的推荐方法是什么?
javascript - Proxyquire 没有存根我需要的类
我有一个AProvider
需要'./b.provider'
.
b.provider.js
相邻a.provider.js
并且看起来像
在我的测试中,我proxyquire
用来模拟./b.provider
如下:
但是,当我运行测试时BProvider
,仍然需要实际的'./b.provider'
不是存根,并且 BProvider 的引用会global.stuff.whatever
引发错误。
为什么这不起作用?
node.js - 使用 mock 对使用请求、管道和流的私有方法进行单元测试
我想在下面的代码中对导出的方法进行单元测试。我想模拟私有方法中的值来控制返回的 Promise 的拒绝/解析。client
是已经连接到数据库的node-postgres对象。
我知道我可以使用proxyquire来存根所需的库,但是如何模拟链接的方法,.on('error', ...)
以便我可以控制返回的值。.pipe(stream)
.on('end', ...)
请注意,显示的导出方法是对真实方法的简化,导出 importDomain 是不可行的。
javascript - 为 async.parallel 编写测试。
我是 javascript 的新手。我正在尝试使用 proxyquire 编写一个基本的单元测试。对于下面的代码。
档案一:
};
文件 A 的单元测试如下所示:
问题是,我无法弄清楚如何测试 fileA 中具有“//做某事”的代码。
欣赏任何指针/代码。
谢谢。
node.js - 带有 proxyquire 和 sinon 的 google-geocoder
我还是很在学node、js、sinon、proxyquire等。
我有一个使用 google-geocode 模块(https://github.com/bigmountainideas/google-geocoder)的模块,我正在努力编写一个测试来存根它。
这一切都归结为我认为你如何设置它。在 time.js 中,我按照 google-geocoder 文档执行以下操作:
我正在尝试按如下方式进行测试,但出现错误:
时间test.js:
我有点困惑。非常感谢。