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

testing - supertest 是否与 express.js 2.5.8 兼容?

我正在使用 express.js 版本 2.5.8(来自遗留代码),并希望使用 supertest 测试路由加载。我在服务器运行时遇到问题,但没有停止。我使用 运行测试jasmine-node,这表明我的断言成功。但是,控制台显示该进程仍在运行。

此示例改编自可能使用 express.js 3.xx 的示例。我的假设是 express 服务器的行为不同,导致当请求在测试中终止时它不会关闭。我不确定如何纠正这个问题。

0 投票
1 回答
2612 浏览

testing - 观看时摩卡测试失败(“毕竟”:done()多次调用)

我有一个 Mocha 测试在第一次运行时可以通过,但是当进行更改并且 Mocha 第二次重新运行测试(使用--watch标志)时,它会失败。我的测试:

错误:

0 投票
1 回答
1171 浏览

node.js - 如何在node.js中的compoundjs应用程序中模拟会话对象

我在 node.js 中有一个复合 js 应用程序。对于某些操作,我有一个过滤器检查“session.user”值的存在,该值仅在成功验证后才会填充。但是,每当为此类操作编写单元测试用例时, session.user 的值就会变得未定义。我使用 supertest、sinon 模块对操作进行获取、发布请求,但由于“session.user”值的未定义值,它不会进行身份验证并被重定向到正确的操作。请帮助我,因为我遇到了同样的问题。

请指导我究竟需要模拟什么,以便我可以验证 session.user 值。提前致谢,

等待肯定的答案,

谢谢,

0 投票
3 回答
630 浏览

node.js - 用于测试 Express 应用的有状态交互

我用 express 写了一个简单的 JSON api,我正在尝试使用 mocha 进行一些黑盒测试。全面测试 API 需要以不同用户身份进行身份验证,因此针对特定功能的每次测试至少由两个请求组成:登录操作和一个或多个测试实际功能的经过身份验证的请求。

我还没有找到任何类似于django.test.client模拟 HTTP 客户端和服务器之间的状态交互的库。Supertest似乎很流行,但与django测试客户端相比,它是非常低级的。这就是我用它编写一个简单的经过身份验证的测试的方式(请原谅我的咖啡脚本):

这真的是执行交互的最干净的方式吗?是否有任何库可以帮助我处理异步性(在 99% 的情况下,除了简单的测试序列化之外,我不需要任何东西,回调只是令人困惑)和状态?会是这样的:

如果不存在类似的东西,我应该自己写 :-) 对上下文的依赖是因为这些天我使用了太多的 ZappaJS,并且感谢 CoffeeScript 的胖箭头,这根本不是一个坏习惯。

0 投票
1 回答
305 浏览

node.js - 是否可以在 NodeExpress 中以某种方式全局访问 req 和 res 对象?

req.session.username = 用户名;

我正在使用 supertest 来测试路由处理。在我的登录处理代码中,如果用户成功登录,我有以下内容 -

但是在超测回调函数中,我无权访问 req 对象。

我想添加类似的内容,expect(req.session.username).toBe('dummy_username')但显然当我无法使用 req 时我不能这样做。那么有没有办法引用 req 对象呢?

0 投票
0 回答
1765 浏览

node.js - 协助 nodejs/express/supertest

NodeJS 和 Express3 的新手...完成我在以下位置找到的教程:

http://www.scotchmedia.com/tutorials/express/authentication

这似乎很有帮助,但我似乎在通过超级测试时遇到了一些困难。

这是测试:

/signup 路由由以下人员处理:

export.signup = function (req, res) {

}

困难在于验证总是失败。

我的 app.j 包含以下使用语句:

没有想法......似乎 req.body.xxx 没有绑定......

感谢任何指导以降低我的无知程度。

干杯

0 投票
1 回答
3062 浏览

express - mocha/express/supertest: '错误:done() 调用了多次'

我正在尝试使用 mocha 和 supertest 在 express 中测试我的路线。不幸的是,我似乎无法测试我的重定向。

这是相关代码

我的 app.js 有这个:

app.get('/', routes.index);

我的 routes.index 看起来像这样:

我的登录页面是:

运行测试时出现以下错误,这让我认为它实际上运行了不止一次:

我已经查看并发现了一些可能相关的错误,但它们已经快一年了,我遵循建议的解决方法无济于事: https ://github.com/visionmedia/supertest/issues/11#issuecomment-20251424 和express 使用的测试套件: https ://github.com/visionmedia/express/blob/master/test/res.redirect.js 我在这里不知所措。谢谢

0 投票
4 回答
9088 浏览

regex - Mocha Supertest json响应正文模式匹配问题

当我进行 API 调用时,我想检查返回的 JSON 的结果。我可以看到正文和一些静态数据正在被正确检查,但是无论我在哪里使用正则表达式,事情都会被破坏。这是我的测试示例:

这是输出的图像:

在此处输入图像描述

关于使用正则表达式进行模式匹配 json 正文响应的任何想法?

0 投票
1 回答
1089 浏览

javascript - Node.js supertest 发布 gzip 压缩数据

我想编写一个测试来将一些压缩数据发布到一个 url,如下所示,但它不起作用:

我认为问题在于 send 不接受缓冲区。不过,我仍然希望让 expect() 和 end() 方法工作。

0 投票
1 回答
816 浏览

node.js - 重定向后使用 supertest 检查 didFlash

我正在尝试测试当用户销毁回调收到用户控制器错误时会发生什么。当 destroy 收到错误时,它会执行以下操作:

这是到目前为止的测试:

我已经看到了这个问题,并且该res.header..部分按预期工作。但是,我仍然对如何测试重定向后发生的闪存感到困惑。