问题标签 [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.
config - 使用 sinon 模拟运行时配置值
我在 hapi 服务器启动之前添加了一些配置值。应用程序运行良好,尽管在测试中我不能使用 config.get()。我可以使用proxyquire。所以我想知道
- “动态”添加配置文件是不好的设计吗?
- 有没有办法可以在这种情况下使用 config.get() ?
任何替代方法?
/li>
javascript - 使用 proxyquire 时,Sinon 存根不工作
我正在为快速 API 编写测试。我proxyquire
习惯于stub
module.exports = someFunction()
依赖类型。
我有一条受保护的路线,所以我曾经proxyquire
存根auth
中间件。
这个auth
中间件正在被存根。
在控制器中,我有一个模型,它从 db 中提取行。我也想把这个存根。
因为这是一种附加到模型的方法UserAddress
。我可以直接用sinon
.
像下面let findUserAddressStub = sinon.stub(UserAdress, 'findAll').resolves({ adddre1: "address1", address2: "address2"})
但是上面的代码不起作用。findAll
方法没有被存根。
我认为proxyquire
是搞乱scope
的express app
。
我试图用它proxyquire
自己存根。
但我不知道导出对象时如何存根单个方法?
地址.test.js
更新
我也试过下面的代码。但它仍然无法正常工作。
Address.js(控制器)
当用户通过身份验证时,我将 user_id 嵌套到中间件req
内部auth
并将其传递给路由处理程序。
所以我也在下面尝试
但是,仍然findUserAddressStub
没有被调用。
node.js - Proxyquire 不适用于 TypeScript
我有以下测试
和我想模拟的课程
但是依赖并没有被替换。
我还包括noCallThru() proxyquire是否 可能无法与 TypeScript 一起使用?
unit-testing - 如何使用 Sinon 和 Proxyquire 模拟 Mongo 查找
我有以下要进行单元测试的中间件类:
我能够模拟 User.findById,配置 jsonwebtoken,但我无法正确存根 Role.find(... 这是我当前使用 Mocha 和 Chai、Sinon 和 Proxyquire 的测试规范
关于如何正确使用 proxyquire 模拟和存根 Role.find 方法的任何内部信息,以便我可以正确地对函数进行单元测试。
node.js - 如何在 NodeJS 中模拟嵌套依赖项
我有一个模块
模块 B
模块 C
我已经为模块 A 编写了一个测试,但是遇到了存根依赖项的问题。我只想存根c.getApiResult()
而不是b.getInfo()
or b.getDetailInfo()
。我尝试过选择性地存根使用proxyquire
,但遇到了问题。有什么帮助吗?
javascript - 如何存根 google-apis 方法?
我正在使用 Gmail API,现在我尝试gmail.users.threads.list
为测试用例存根方法。但它不起作用。
我试过了:
它不能调用存根函数
更新
我发现了问题。问题在于对象的破坏。
下面的代码对我有用。
require
现在我很困惑,用and导入有什么区别proxyquire
。使用 进行测试时,破坏不会影响proxyquire
。
typescript - 在 TypeScript 中使用 proxyquire 和 sinon 存根 adm-zip
我想用玩笑对zip.adapter.ts类进行单元测试。我尝试了很多不同的方法来模拟/存根adm-zip包,但没有任何效果。
我首先尝试了 ts-mock-imports,但如果我尝试模拟 adm-zip,它总是会失败。然后我尝试了 sinon,但它要么无法存根 adm-zip,要么只是没有存根。我最后的手段是将 sinon 与proxyquire结合起来,但这似乎也不起作用....
有人知道为什么这不起作用吗?当测试调用unzip方法时,其中的代码仍然使用真正的 adm-zip 实现......
(我知道单元测试没有多大意义,因为一切都是模拟的,但由于我无法更改的测试覆盖率规则,我必须这样做)
zip.adapter.ts
zip.adapter.spec.ts
更新:
我让我的测试与 Jest 一起工作,但前提是我需要()我的模块。如果我在没有 require() 的情况下使用我的导入,则模拟不起作用。是否可以摆脱 require() 并仅使用导入?
javascript - Proxyquire 和 Sinon 检查函数是否被调用
我正在尝试在一个名为的文件中编写一个测试,该文件fooTest
试图检查文件中是否foo
在我调用时调用fooHandler
了文件中的函数bar
。
我已经能够测试bar
调用了函数。( barSpy = sinon.spy()
,然后将路径和 spy 作为存根添加到 Proxyquire) 但是,现有测试现在正在中断 - 现有测试检查使用 的函数的输出bar
,但我认为这spying
会弄乱行为。我该如何解决这个问题?
提前致谢!
node.js - 如何使用 Proxyquire 在 TypeScript 中模拟配置依赖项?
我有一个 config.ts 返回一个对象:
我有一个依赖于 config.ts 的类(../src/models/item.model):
我想编写一些具有不同数量值的测试。默认值为 50(在 config.ts 中设置),但在我的 item.test.ts 中我想使用 100 的值。我试图通过使用 Proxyquire 来实现这一点:
testItem.amount 实际上是 50(所以它仍然使用原始配置文件)。这应该是 100。
我怎样才能让测试通过?
jquery - 使用 proxyquire 和 sinon.js 的 JQuery 存根 getJSON 函数
我正在尝试使用 sinon.js 存根和 jquery 的功能,getJSON
但done
我总是收到一个错误,即 .getJSON、done 和 fail 不起作用。fail
proxyquire
测试
我的要求是测试这两个功能,但我无法做到这一点。我已经花了两天时间,但无法存根 getJSON、done 和 fail 函数。
任何帮助都将受到高度赞赏