问题标签 [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.
node.js - supertest 代理似乎没有在 node.js express.js 应用程序中保留会话
从我读过的所有文档和示例中,应该可以使用代理在超测中保持会话:
会话应该持续存在,因为上面的每个请求都使用相同的代理。然而,情况似乎并非如此 - set-cookie 日志的输出如下:
passport.js 用于身份验证和会话。我希望上面的 connect.sid 对于两个请求都是恒定的,但看起来每次调用都会创建一个新会话,因此代理在第二次调用时没有登录,也没有返回任何用户对象。
当我在浏览器中手动测试我的应用程序时,connect.sid 在登录后保持不变,并且我正在测试的功能确实有效。
我一定是在代理方面做错了,我希望有人能发现它。否则,我将不胜感激有关如何调试该问题的建议。
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
我不知道的属性,或者我的测试有什么缺陷?
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 要求。我尝试得越多,这对于看起来很简单的事情就越复杂。也许我对这一切都错了。有任何想法吗?
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
尽我所能告诉一切正常,这只是一个警告,但它有点烦人:(
node.js - 使用 MOCHA 时连接 ECONMREFUSED 以 SUPERTEST 快速应用程序
我正在使用 MOCHA 来测试一些快速框架代码。
我编写了一个简单的 MOCHA 代码来测试响应标头中返回的消息。该代码有效。这也意味着我已连接到服务器,并且可以从数据库中获取文件。
现在,我想用“SuperTest”来做同样的事情。但是,我得到“错误:连接 ECONMRREFUSED”
这是我的代码:
控制台上显示的错误是:
我正在学习使用“SuperTest”。请帮忙。谢谢你。
node.js - 测试受保护的 api 调用、mocha、supertest、node js、passport
我有一个以护照作为中间件的受保护的 api 调用:
如果用户未获得授权,则 auth 方法返回 401。
我有这个测试来看看用户是否登录:
这是我对受保护的 api 调用的测试:
我首先发布我的登录信息。然后在登录回调中调用受保护的 api 调用。它应该是 200,但我得到 401。该功能在我的客户端中有效,因此在我的测试中出现了问题。
我也尝试将我的 postValidLoginCredentials 放在一个函数中,但它没有用。
任何想法?
node.js - supertest .expect(function(res) {}) 如果测试正常返回什么
如果用 mocha 和 supertest 进行测试:
我想测试生成的主体,但我总是超时运行。如果发生错误,我可以抛出错误,那很好。但是,如果没有发生错误,如果我没有像文档中描述的那样返回,我会遇到超时:
传递自定义断言函数。它将被赋予要检查的响应对象。如果响应正常,它应该返回 falsy,最常见的是不返回任何内容。如果检查失败,则抛出错误或返回一个真实值,如将变成错误的字符串
即时文档示例:
我使用版本 0.12.1
node.js - 用 mocha/supertest 测试随机值
我有这个提供 API 的 KoaJS 应用程序,我正在使用 mocha/supertest 来测试 API。其中一项测试是确保您可以通过 API 创建 oauth 令牌。测试看起来像这样:
这里的问题是 token 和 createdTimestamp 是我在执行测试之前无法确定的值。
在不模拟响应的情况下测试这种情况的最佳方法是什么(因为我希望这个测试真正命中数据库并且需要这样做)?
node.js - 使用超测设置超时不起作用
我正在尝试使用如下代码测试我的服务器:
服务器所做的事情通常需要几秒钟,这比默认的超时时间 2000 毫秒还要长,所以我调用.timeout 10000
. 然而,尽管如此,当我运行代码时,我得到:
我需要做什么来增加这个超时时间?