问题标签 [supertest]

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 投票
1 回答
2618 浏览

javascript - supertest test express 中间件

发现以下关于如何在 express 中测试中间件的提示:
https
://github.com/visionmedia/express/blob/master/test/req.xhr.js我想知道为什么我的测试总是通过。直到我注意到当我从 express 复制测试时,它们的行为相同。我试着把它们搞砸,但它们一直在通过: https

://github.com/visionmedia/express/blob/master/test/req.xhr.js 我在这里错过了什么?

0 投票
2 回答
6226 浏览

node.js - supertest 代理似乎没有在 node.js express.js 应用程序中保留会话

从我读过的所有文档和示例中,应该可以使用代理在超测中保持会话:

会话应该持续存在,因为上面的每个请求都使用相同的代理。然而,情况似乎并非如此 - set-cookie 日志的输出如下:

passport.js 用于身份验证和会话。我希望上面的 connect.sid 对于两个请求都是恒定的,但看起来每次调用都会创建一个新会话,因此代理在第二次调用时没有登录,也没有返回任何用户对象。

当我在浏览器中手动测试我的应用程序时,connect.sid 在登录后保持不变,并且我正在测试的功能确实有效。

我一定是在代理方面做错了,我希望有人能发现它。否则,我将不胜感激有关如何调试该问题的建议。

0 投票
1 回答
4983 浏览

node.js - 如何使用 supertest 测试 Express 应用程序的 POST 请求参数?

我正在使用 Express 4.0.0 创建一个 API,其中一条路由需要一个 POST。目前我只是想让它回显在请求参数中发送的名称。响应是 JSON 对象,但请求需要表单字段。

我的测试设置了type()应该form允许send()将散列作为 POST 参数/字段传递的对象。

无论如何,我的测试失败了,在 Express 中,我req.params是空的,req.param('name')出现undefined并且req.body也是空的。

是否有一些req.fields我不知道的属性,或者我的测试有什么缺陷?

0 投票
2 回答
3717 浏览

javascript - 如何使用 CSRF 测试 express form post?

我正在尝试为我的服务器端表单验证编写一个测试,但我不断收到一个禁止错误。这似乎需要一个两步的过程。步骤 1,从表单中获取 CSRF 值。第 2 步,使用 CSRF 值发布到表单处理程序。但是,无论我如何尝试发布,我都会收到一个禁止的错误。

--完整测试:https ://github.com/socketwiz/swblog/blob/master/test/contact.js#L57-L100

因此,我尝试更改以下行: https ://github.com/socketwiz/swblog/blob/master/test/contact.js#L85

但是我尝试的任何东西似乎都无法满足 CSRF 要求。我尝试得越多,这对于看起来很简单的事情就越复杂。也许我对这一切都错了。有任何想法吗?

0 投票
0 回答
492 浏览

javascript - 检测到超测 EventEmitter 内存泄漏

这似乎是关于 SO 的一个常见问题,但我已经尝试了所有建议,但似乎无法通过它。常见的解决方案似乎是战略性的:

但我似乎无法弄清楚该放在哪里。它发生在我的测试用例中:https ://github.com/socketwiz/swblog/blob/master/test/contact.js

一开始很好,但是当我开始添加更多测试用例时,它开始产生以下错误:

它似乎不是任何特定的测试,因为如果我评论一个失败的测试,它只会转移到另一个测试。

为了修复它,我尝试设置:

这里:https ://github.com/socketwiz/swblog/blob/master/test/contact.js#L21

我也试过设置

这里:https ://github.com/socketwiz/swblog/blob/master/index.js#L15

但我似乎没有任何运气。我应该把它放在哪里的任何想法,或者有更好的解决方案?我正在使用节点 v0.10.26。我的整个项目可以在这里找到以供参考:https ://github.com/socketwiz/swblog

尽我所能告诉一切正常,这只是一个警告,但它有点烦人:(

0 投票
1 回答
979 浏览

node.js - 使用 MOCHA 时连接 ECONMREFUSED 以 SUPERTEST 快速应用程序

我正在使用 MOCHA 来测试一些快速框架代码。

我编写了一个简单的 MOCHA 代码来测试响应标头中返回的消息。该代码有效。这也意味着我已连接到服务器,并且可以从数据库中获取文件

现在,我想用“SuperTest”来做同样的事情。但是,我得到“错误:连接 ECONMRREFUSED”

这是我的代码:

控制台上显示的错误是:

我正在学习使用“SuperTest”。请帮忙。谢谢你。

0 投票
1 回答
1949 浏览

node.js - 测试受保护的 api 调用、mocha、supertest、node js、passport

我有一个以护照作为中间件的受保护的 api 调用:

如果用户未获得授权,则 auth 方法返回 401。

我有这个测试来看看用户是否登录:

这是我对受保护的 api 调用的测试:

我首先发布我的登录信息。然后在登录回调中调用受保护的 api 调用。它应该是 200,但我得到 401。该功能在我的客户端中有效,因此在我的测试中出现了问题。

我也尝试将我的 postValidLoginCredentials 放在一个函数中,但它没有用。

任何想法?

0 投票
1 回答
1487 浏览

node.js - supertest .expect(function(res) {}) 如果测试正常返回什么

如果用 mocha 和 supertest 进行测试:

我想测试生成的主体,但我总是超时运行。如果发生错误,我可以抛出错误,那很好。但是,如果没有发生错误,如果我没有像文档中描述的那样返回,我会遇到超时:

传递自定义断言函数。它将被赋予要检查的响应对象。如果响应正常,它应该返回 falsy,最常见的是不返回任何内容。如果检查失败,则抛出错误或返回一个真实值,如将变成错误的字符串

即时文档示例:

我使用版本 0.12.1

0 投票
1 回答
1353 浏览

node.js - 用 mocha/supertest 测试随机值

我有这个提供 API 的 KoaJS 应用程序,我正在使用 mocha/supertest 来测试 API。其中一项测试是确保您可以通过 API 创建 oauth 令牌。测试看起来像这样:

这里的问题是 token 和 createdTimestamp 是我在执行测试之前无法确定的值。

在不模拟响应的情况下测试这种情况的最佳方法是什么(因为我希望这个测试真正命中数据库并且需要这样做)?

0 投票
2 回答
8879 浏览

node.js - 使用超测设置超时不起作用

我正在尝试使用如下代码测试我的服务器:

服务器所做的事情通常需要几秒钟,这比默认的超时时间 2000 毫秒还要长,所以我调用.timeout 10000. 然而,尽管如此,当我运行代码时,我得到:

我需要做什么来增加这个超时时间?