问题标签 [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 回答
124 浏览

javascript - 无法在 Mocha 功能之前登录代理

我正在使用 mocha 测试登录过程,这是我的示例测试用例

register和函数都login正常工作,多个之前也按预期的定义顺序执行,register然后是login请求。但是第三次before​​,/verify老是说agent没登录。

如果我将代码更改为:

这次agent按预期记录。有点奇怪。希望有人可以帮助我,谢谢。

0 投票
1 回答
2305 浏览

node.js - 在 cloud9 上使用 supertest 测试 node express 应用程序

我无法使用 supertest 在 cloud9 上测试 express 应用程序:即使是基本测试也会抛出 ECONNREFUSED。

重现步骤 :

  • 创建一个新的 nodejs 工作区
  • npm install express supertest
  • 创建一个包含以下代码的文件“fails.js”:

    /li>

然后在终端上启动节点失败.js:错误:连接 ECONNREFUSED

我不知道发生了什么...

======== 编辑

感谢接受的解决方案,这里是使用 mocha 在 cloud9 或任何限制可用 ip/port 的环境中测试 express 应用程序的代码:(works.js)

然后mocha works.js...

0 投票
2 回答
3399 浏览

javascript - 两个文件使用 supertest 和 mocha 导致 EADDRINUSE

我正在使用 supertest 对我的服务器配置和路由处理程序进行单元测试。服务器配置测试在test.server.js,路由处理测试在test.routes.handlers.js.

当我使用 运行所有测试文件mocha .时,我得到EADDRINUSE. 当我单独运行每个文件时,一切都按预期工作。

这两个文件都定义并要求 supertest,request = require('supertest')和 express 服务器文件, app = require('../server.js'). 在server.js中,服务器是这样启动的:

我的实施有问题吗?运行测试时如何避免EADDRINUSE错误?

0 投票
0 回答
722 浏览

node.js - 使用摘要身份验证测试路由

我正在尝试针对受摘要策略保护的 API 编写一些测试。

我尝试了 supertest 和 request 但都未能通过身份验证。API 使用 passport-http 摘要方法。有任何想法吗?

更新

我首先在使用 curl 时遇到了一些问题,并认为我的密码是用 bcrypt 生成的,所以我在数据库中将它们更改为纯文本密码。我试图让它与 SHA1 一起工作,但这并没有立即解决,为了测试请求,我现在将其保持简单。

这是 curl 的输出,测试中的请求仍然不起作用。

更新 2 稍微修改请求后,我终于有了与 curl 完全相同的标头,但在响应中仍然得到 401。

0 投票
1 回答
2354 浏览

node.js - 在 Mocha 中使用 Supertest 测试 Node.js Express API 和 MongoDB

我已经在这个网站和网络上搜索了一段时间,但我找不到解决这个问题的方法。我正在尝试测试我的 API 的 REST 功能,但 PUT 测试似乎从来没有工作过。每次在 mocha 中运行测试时,我都会收到错误“未捕获的断言错误:预期 [] 等于 {objectData}”,其中 objectData 是我尝试发布的对象的 json 表示形式(名为 couponTwo)。

我感觉问题出在 beforeEach 函数上,因为它在每次测试之前清除数据库,这需要完成许多其他测试才能正确运行。这是测试代码:

这是应该在 PUT 之后测试数据库中是否存在对象的方法:

如果这个问题的答案很明显并且我错过了一些基本的东西,我深表歉意,但我遇到了障碍。谢谢你的帮助!

0 投票
1 回答
4111 浏览

javascript - 使用 Supertest 和模拟数据库进行 Express JS 集成测试

是否可以使用 supertest 测试 Express JS REST API,但用模拟数据库对象替换实际的数据库连接?我有涵盖数据库模型和应用程序其他部分的单元测试,以及建立实际数据库连接的 API 端点的功能测试,但我有一个奇怪的要求来创建类似于功能测试但使用模拟数据库连接的集成测试。示例端点控制器如下:

URI 的索引是

控制器中使用的列表模型连接到数据库并检索输出的数据。挑战在于模拟实际的数据库调用,同时仍然使用 supertest 发出请求并从 URI 检索数据

任何信息都会有所帮助,包括您是否认为这是一个糟糕或毫无意义的想法

0 投票
1 回答
16852 浏览

node.js - Node.js / Express / Mocha / Supertest Rest API - 空请求正文

我到处寻找我能找到的解决方案。我发现的唯一一件事是一个未答复的帖子。如果我忽略了某些事情,我深表歉意。

问题是当我尝试获取APIPOST中的值时/createQuestion,正文为空/未定义。我Cannot read proprety 'question' of undefined从 API 收到这样的错误。

快递 API:

考试:

我错过了什么?是否以某种不同的格式.send()发送数据?POST它不是POST将其添加到请求的正文中吗?

0 投票
1 回答
2922 浏览

node.js - NodeJS supertest - 使用证书测试路由

我正在使用 supertest 测试我的NodeJS应用程序。我的应用程序正在请求一个证书,我的用户获得了针对该应用程序的授权证书的 CN。

在测试我的第一条路线时,我收到一个错误,抱怨我的自签名证书。

我想知道在测试我的路线时是否有办法设置有效或无效的证书?

0 投票
3 回答
2607 浏览

javascript - Supertest 的 Mongoose 开放连接问题

由于出现错误,我无法运行多个 Supertest/Mocha 测试Error: Trying to open unclosed connection.- 我发现这篇文章建议循环和检查连接状态。想知道有没有更好的方法?也许最近在 Supertest 中添加了一些东西来处理这个问题。

0 投票
1 回答
1201 浏览

node.js - 在猫鼬模型和快速路线上运行摩卡测试时超时

我在为我的 Mongoose 模型我的 express 应用程序(路线)编写测试时遇到问题

我有一个非常简单的app.js文件:

我有一个名为的文件夹model,其中包含我的猫鼬模型。

我有一个test文件夹,accountTest.js- 看起来有点像这样:(
这是为了测试我的帐户模型)

utils 取自这里:http ://www.scotchmedia.com/tutorials/express/authentication/1/06

如果我把它留在这一次测试中,这很有效。

如果我添加另一个测试来测试我的快速路线,如下所示:

然后我得到一个超时错误,在我对我的模型的测试中......

影响它的行是app = require('../../app')
如果我删除它,那么就没有超时。

我意识到这可能与猫鼬连接有关,但不确定如何在测试之间“共享”它?