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

javascript - NodeJS 用 supertest 测试 HTTPS 服务器

我读到了supertest。我设法测试了我的两条路线:


但是,当我想访问我需要注册的其他页面时,问题就开始了。我找到了这个定期注册的解决方案:


在我的应用程序中,我使用证书注册。我可以用我的证书以某种方式配置测试吗?更改我的 https 选项也不起作用:


我认为这是因为我在每条路线中都 使用了中间件:



问题:

  • 无论如何我可以用我的证书配置代理吗?
  • 我是否应该过度考虑isAuthenticated在每条路线中使用中间件的设计?
  • 我可以以某种方式更改超测代理的 cookie 对象吗?

如果我可以像下面的代码片段那样设置 req 对象,我可能会有一个解决方案。

0 投票
2 回答
9046 浏览

javascript - NodeJS超测访问会话对象

我正在使用 supertest 测试我的 Node.js 应用程序。在我的控制器中,我访问会话对象。为了发出一个有效的请求,这个会话对象需要填充一些数据。

控制器

测试

问题

如何模拟 req/session 对象?

0 投票
1 回答
1272 浏览

javascript - 嵌套在描述/请求函数中的 sinon 存根

我有一个使用 Mocha、Sinon 和 SuperTest 的相当简单的测试:

我遇到的问题是当我assert(this.email.sendOne.calledWith('welcome'))- this.email 未定义时。
我很确定这是因为这不是我所期望的范围 - 我认为这现在是 request.end 的范围?

我怎样才能到达我的 sinon 存根以断言该函数已被调用?

0 投票
2 回答
15650 浏览

node.js - 无法使用 mocha 和 supertest 测试 DELETE 方法

我正在尝试为节点应用程序构建 RESTful API。我建立了路线,一切都运行良好。但是当我尝试测试它时,它无法让 DELETE 方法工作,尽管它正常工作而不是在测试中。

这是服务器和测试的代码。服务器:

测试:

这是它抛出的错误消息:

0 投票
3 回答
7977 浏览

node.js - 如何使用 Passport /Facebook strategy/ 验证 Supertest 请求?

我正在使用 Passport.js 进行身份验证(Facebook 策略)并使用 Mocha 和 Supertest 进行测试。如何使用 Supertest for Facebook 策略创建会话并发出经过身份验证的请求?

这是用户未登录时的示例测试:

谢谢你的建议:D

0 投票
1 回答
5153 浏览

javascript - 无法从超测应用请求中捕获异常

此处显示的代码示例:https ://gist.github.com/sebinsua/8118001

(3次失败2次通过,希望4次失败1次成功。)

如果从普通函数中抛出,则可以使用 mocha 捕获 AssertionErrors,但是一旦从超级测试包装的应用程序中调用函数,我就不再能够检测到它们。这很烦人,因为我希望能够将某些断言注入到我的 express 应用程序中,然后我可以对其进行测试。(我正在测试一个带有我希望测试的副作用的中间件,如果你能告诉我如何模拟请求和响应对象,这也解决了我的问题。)

因为我能够访问间谍,所以我知道这与无法访问的状态无关。

但是,我注意到 node.js/express.js/supertest 会自动将未捕获的异常转换为响应中的错误消息。也许这就是阻止他们被摩卡测试抓住的原因?

编辑

我刚刚测试了下面的代码,看看这是否是一般的 http.createServer() 问题。它不是。这意味着在 connect、express.js、supertest 或 superagent 级别发生了一些事情。(顺便说一句,这些代码片段只能工作一半......)

它看起来像一个明确的问题(见下文) - 我注意到 AssertionError 没有出现在红色文本中(就像被 Mocha 捡起的情况一样。)

简而言之,我的问题是,我如何让 A 表现得像 B?

一个

更新

senchalab 在 /lib/proto.js 的连接的第 192 行是这一切都出错的地方。有一个 try-catch,这会将我的错误传递给下一个中间件,该中间件继续做同样的事情,直到 4-arity 中间件处理它或者没有更多中间件在其中运行一些后备代码以自动打印到屏幕并丢弃异常...

我不知道我能做些什么让它再次抛出我的错误,除非我能够以某种方式覆盖句柄方法。

0 投票
4 回答
30052 浏览

node.js - 如何使用 superagent/supertest 链接 http 调用?

我正在用 supertest 测试一个 express API。

我无法在测试用例中获得多个请求以使用 supertest。以下是我在测试用例中尝试过的。但是测试用例似乎只执行最后一个调用,即 HTTP GET。

我在这里遗漏了什么,还是有另一种方法可以将 http 调用与 superagent 链接起来?

0 投票
1 回答
136 浏览

node.js - 使用 BusterJS、ExpressJS 和 SuperTest 的问题

我在使用 ExpressJS + BusterJS + SuperTest 测试路线时遇到了一些问题。

当我运行这个测试时,我得到:

这似乎是错误的,因为我确实有一个断言。问题是除非出现错误,否则它不会被调用。

另一个问题是,如果我有多个“if”块,服务器不会在它们之间重新启动。我可能错误地使用了 node + express + buster + supertest 堆栈,因此对于如何测试这些路由的任何帮助将不胜感激。

0 投票
1 回答
707 浏览

javascript - Supertest 中的否定断言

初学者使用 Javascript 进行测试。我正在使用 Mocha,但 Louis 明智地表示这个问题只针对 Mocha。我有一个 Node 应用程序,其中有一些页面对匿名用户可见,而有些页面如果您没有登录则不应该看到。所以,作为一个非常简单的开始,

ETC

这最初是有效的。但是,开发人员已将不可用页​​面更改为 302 状态,并将这些页面重定向到 Web 应用程序的根目录。因此,为了让开发人员在如何实施此限制方面具有灵活性,我想将其更改为否定断言。那么,使用 Mocha 语法,我如何“期望”响应为 200 以外的任何值?

0 投票
0 回答
498 浏览

node.js - Restful Express API 在 mocha 中通过,在浏览器中失败;卷曲

我在本地主机上运行了一个宁静的 api,我在 Mocha 中测试过(它启动了服务器)——所有测试似乎都通过了。但是,如果我尝试在 restful url 上使用 POSTMAN 或 curl,它会失败(请参阅本页底部的错误)。我已经尝试过 Firefox 和 Chrome。

表示

架构

处理程序

测试数据

测试

测试结果

邮差

结果