问题标签 [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 投票
2 回答
497 浏览

node.js - Mocha 路由测试未异步执行

我已经开始使用 mocha,但我对一个特定的测试用例有疑问。这是代码:

我期望结果为假,因为在数据库中插入用户后,唯一索引规则应该引发错误。当我运行这个测试时,我得到这个:{success: true, redirect: '/user/registerConfirmation'},我应该得到这个:{success: false}。我注意到,当我在每次测试(在 utils.js 中)之前不清除数据库时,我得到了预期值。我是否因为异步错误而收到此错误?如何重写此测试以确保它有效?

谢谢

文件

util.js包含测试序列的配置:

user.js用户模型:

user.js(控制器)是所有用户路由的控制器。


编辑

我已经尝试过 end() 函数,但它仍然不起作用。

0 投票
2 回答
5970 浏览

node.js - 响应后在 Supertest 中访问“req”对象

在测试请求的同时/之后,有什么方法可以直接访问 中的req对象?supertest我想测试我的passport策略,所以我想检查req.user, req.session,也许还有其他的。我知道我可以测试页面重定向或 Flash,因为这些是我的策略所做的,但是查看对象上是否有用户似乎也很有用req。如果我这样做,我还可以随时检查有多少用户。

我将使用“本地注册”策略为用户注册,该策略是这样定义的:

我使用这种策略的一种方式是这样的:

我的“本地”策略定义如下:

我使用这两种策略,例如:

我试过了

res我在函数内部记录的对象end()太长而无法在此处显示,req它上面定义了一个对象,但它似乎只有在打开请求之前定义的对象和函数。换句话说,它没有我想要的req.userreq.session或其他对象,因为它们是在请求完成并启动新请求之后定义的。我注意到它也有状态码,它们只在请求完成后才定义,所以我一定遗漏了一些东西。

req在您正在测试的请求结束后,有什么方法可以访问该对象?或者我会以完全错误的方式解决这个问题?

0 投票
2 回答
470 浏览

javascript - 如何测试控制器中是否正在调用方法?

这是一个关于在 Sails JS 中使用 Mocha 进行异步测试的问题。

我正在使用超测试库在 Sails JS 中编写控制器测试。我想检查一个方法是否在 HTTP POST 上被调用到我们的控制器。为此,我正在对该方法进行存根,并期望它在以下方式中被调用end()

当我运行它时,期望失败,因为断言时未调用该方法。但是,当我将期望放在 asetTimeout中时,它会起作用:

有没有办法让测试通过而没有setTimeout

这是我正在测试的代码部分:HeartbeatController#create

您还可以通过发送拉取请求帮助我们解决问题:https ://github.com/multunus/one-mdm/issues/1

0 投票
1 回答
3687 浏览

node.js - 如何使用 express、sequelize、mocha 和 supertests 进行带有回滚的单元测试

我正在尝试将数据插入数据库进行测试,使用 supertest 测试请求,然后使用假数据进行回滚。有人知道这种方式是否正确吗?如果不是,请您回答并告诉我哪种方法是正确的?提前致谢。

0 投票
1 回答
516 浏览

node.js - 快速回滚的单元测试

嗨,我正在尝试进行单元测试,创建一些假数据并执行请求(使用 supertest)以检查控制器是否正常工作。当控制器试图获取虚假数据时,问题就出现了,因为它只存在于事务内部。

所以我的问题是:

  • 有人使用 node.js 和 express 进行了类似 junit 的测试吗?
  • 您如何管理数据库数据?你如何对其进行回滚?

提前致谢。

0 投票
2 回答
5161 浏览

node.js - supertest:测试重定向url

使用 supertest,我可以测试重定向代码 302

我如何测试要重定向的 url 目标?

0 投票
1 回答
683 浏览

node.js - “未检测到侦听器”验证错误 Mongoose 和 Mocha

我正在尝试为我的 express 应用程序的 POST 功能设置单元测试。

我有以下简单的 Mongoose 模式,其中包含两个字段,其中一个是必需的。

当我在关闭验证/必填字段的情况下进行 mocha 测试时,测试很好,但是当 required 设置为 true 时,测试失败并出现以下错误:

有任何想法吗?如您所见,我确实满足了架构要求并包含了标题字段。

下面是我的测试:有趣的是,第一个测试似乎工作正常,只有当我尝试发布时它才会产生错误。

这是包含架构和验证的模型:

我还定义了一个控制器:

我的快递 index.js:

0 投票
1 回答
2322 浏览

node.js - Mocha + Supertest 中 404 测试的“Body Parse”错误

我正在尝试编写测试以确保我的 Express API 为各种场景正确返回正确的 HTTP 状态代码。我在测试中使用 Mocha 和Supertest来请求 API。现在我得到了非常意想不到的结果,下面详细介绍。

使用:Express、body-parser、Sequelize、Mocha、Supertest

获取 /users/:id

测试此方法

对于 404 测试,我收到此错误:{ [Error: Parse Error] bytesParsed: 12, code: 'HPE_INVALID_STATUS' }在回调中。resundefined。_

我为这个expect调用尝试了几种不同的语法形式:.expect(404, function(err, res) {但没有一个有效。我也为此尝试了所有不同的语法形式:

任何人都可以对这里发生的事情提供一些见解吗?

0 投票
2 回答
4480 浏览

node.js - 在超测请求中设置 ip

使用 supertest,我可以请求测试我的 node.js 应用程序

如何设置特定的 IP 来发出测试请求?

0 投票
1 回答
137 浏览

node.js - Supertest 可以帮我验证我的 API 是否返回回调/jsonp 函数吗?

本着测试驱动开发的精神,我试图找到一种方法来验证我的 API 是否可以在请求时返回包装在回调函数中的结果。像这样:

我正在使用摩卡咖啡和超级测试。除了将响应变量转换为字符串并将其与参考字符串进行比较之外,还有其他聪明的方法来验证测试套件是否正在接收内部带有 JSON 的函数调用?