问题标签 [node-mocks-http]

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 投票
0 回答
293 浏览

node.js - 模拟 AWS 开发工具包时如何使用 node-mocks-http?

我有一个现有的工作测试正在测试 Express 应用程序中的路由(修剪代码):

这是一个工作测试。但我需要重构它以不使用完整的服务器(因为它在启动时做了一些集成工作)。所以我要引入node-mocks-http

问题是添加node-mocks-http似乎破坏了 AWS 开发工具包的模拟。当sendEmail被击中时,它击中的是实际的 AWS 开发工具包,而不是模拟版本。它在先前版本的测试中达到了模拟版本。

我该如何node-mocks-http使用aws-sdk-mock

0 投票
1 回答
880 浏览

node.js - node-mocks-http 没有发出“结束”事件

好的,所以我有所有这些依赖于 mocha 中的 node-mocks-http 的测试来测试我的 express.js 控制器,它们仍然工作得很好。

问题是我创建的任何新测试都拒绝发出“结束”事件并完成。我决定编写一个非常简单的控制器函数并在一个全新的项目中进行测试,但我仍然没有触发“结束”事件。

这是我的控制器(index.js):

这是我的测试(test.js):

这是我运行的确切代码

这绝对拒绝发出“结束”事件并结束测试......

这真的让我发疯,任何人都可以看到这里有什么问题吗?或者是什么可能使这不起作用?

仅供参考,当我在运行 testFunc 之前将响应对象记录到控制台时,我可以看到完成:false并且当我在看到之后记录它时

完成了:真的那么为什么不发出“结束”事件?

0 投票
1 回答
776 浏览

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

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

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

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

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

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

0 投票
3 回答
295 浏览

javascript - Jest 测试异步功能 - 测试运行完成后一秒钟 Jest 没有退出

我想使用 node-mocks-http 用 Jest 测试我的 Next.js API 函数。这是我要测试的功能:

这是我的测试文件的样子:

没有await getFoods()调用,一切都按预期工作。但是,通过调用我得到错误:Jest did not exit one second after the test run has completed.getFoods()是一个异步棱镜数据库查询。这里缺少什么?

0 投票
0 回答
9 浏览

node.js - 授权标头没有被嘲笑。包:节点模拟-http

我也想检查标头令牌。我只是导入控制器函数并在测试用例内部和内部调用它,然后再模拟请求但不模拟标头。