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

node.js - 测试帆控制器

我正在尝试测试我的风帆控制器。但是当我在我的 UserController.test.js 中使用这行代码时,它抛出的错误不能调用未定义的地址

在 bootstrap.test.js 中,我已经像这样声明了风帆

PS:我已经检查了sails.hooks 工作正常,只是在调用http 方法时它给了我这个错误。

我正在关注链接进行测试。 帆测试

0 投票
1 回答
799 浏览

node.js - 测试 oauth 认证的路由

我正在使用 koa-passport 和 koa 使用 twitter oauth 处理我的登录和注册。它工作得很好,但我很难理解我应该如何使用 supertest 和 mocha 测试我的认证路线。

我见过的大多数示例都涉及使用 supertest 将用户名和密码发送到登录端点以首先创建用户会话。我的问题是我没有用户名/护照身份验证策略。我需要模拟一个 oauth 登录过程,该过程将设置适当的会话变量,因此测试某些路由。

关于我如何实现这一目标的任何线索?

0 投票
1 回答
2153 浏览

node.js - 断言响应正文为空

我试图断言响应正文是否为空,但出现错误:

怎么了?我该如何解决这个问题?

0 投票
1 回答
999 浏览

node.js - 护照,摩卡,超测 ECONNREFUSED

我正在尝试使用 mocha、supertest 和 passport 测试身份验证,但出现连接被拒绝错误。我认为这与我启动应用程序的方式有关...

这个用户确实存在于我的 mongo 数据库中。在我的服务器文件中,这两个级别更高:

0 投票
1 回答
361 浏览

node.js - 在描述块中的每个测试之前的 agent.auth

以下作品

现在,如果我想在“登录时”块中添加越来越多的测试,我不想.auth('testusername', 'validuserpass')每次都重复该行。我应该将认证代码放在 beforeEach 中,因为这就是 beforeEach 的用途。

所以我尝试了这个:

发生的事情agent.auth没有定义。我认为该auth方法是在auth.post.

有没有办法做到这一点?

0 投票
1 回答
1756 浏览

node.js - 在快速响应对象上获取 cookie 数据?

我只是在做一些 API 测试,我正在尝试验证发送的 cookie 数据是否正确,但是我找不到任何关于从响应对象获取 cookie 的文档,只能从请求中获取。

那么有没有一种快速的方法来做到这一点,就像你对请求所做的那样req.cookies["myCookie"],我知道我可以从那里获取标头并获取 set-cookie ,但是尝试从那里手动解析 cookie 数据有点混乱.

0 投票
1 回答
319 浏览

node.js - Gruntfile 从单个 grunt 命令运行应用程序和模拟测试

我有一个可以运行的 Node.js Express REST API 应用程序。好的。

我有一个 Mocha/Chai/Supertest 模拟来测试上面的 API 应用程序。好的。

但我必须启动应用程序,然后独立运行模拟测试。

如何运行单个 grunt 命令来启动 API 应用程序,让它启动并运行,然后运行模拟测试?

或者我是否需要以某种测试模式(通过 env var)运行 API 应用程序并让仅测试逻辑以某种方式调用模拟测试?

我可以尝试一些事情并得到一些工作,但什么是好方法?(避免过度使用短语“最佳实践”。)

0 投票
0 回答
898 浏览

unit-testing - 使用 mocha/supertest 对 Sails/Waterline 模型进行单元测试:toJSON() 问题

我正在我的 Sails 应用程序的模型、控制器和服务上设置单元测试。在测试我的用户模型时,我偶然发现了一个令人困惑的问题。摘录User.js

以下是我的test.js,旨在与 mocha 一起运行。请注意,我在蓝图配置中打开了pluralize标志。此外,我使用sails-ember-blueprints来获得符合Ember Data 的蓝图。所以我的请求必须看起来像{user: {...}}.

在我设置将阻止对 User.isAdmin 进行写访问的策略之前,我希望我的 user.isAdmin 属性会被此请求更新。在运行测试之前,我的用户的 isAdmin 标志设置为 true。运行测试显示标志未更新:

这更令人费解,因为在客户端运行的以下 QUnit 测试确实更新了 isAdmin 属性,尽管它无法判断它是否已更新,因为我从 User.toJSON() 中的有效负载中删除了 isAdmin。

在 mongoDB 控制台中:

更令人费解的是,注释掉delete obj.isAdmin会使User.toJSON()mocha 测试通过!

所以,我想知道:

  • Waterline 模型上的 toJSON() 方法是否仅用于输出过滤?还是对update()等写操作有影响。
  • 这个问题可能与超测有关吗?由于我的 QUnit 测试中的 jQuery.ajax() 确实修改了 isAdmin 标志,所以超测试请求没有修改是很奇怪的。

任何建议都非常感谢。

0 投票
5 回答
21120 浏览

node.js - 在这个使用 supertest 和 Node.js 的测试中 res.body 是空的

我正在使用supertest测试 Node.js API,但我无法解释为什么res.body对象超集返回为空。数据显示在res.text对象中,但没有res.body,知道如何解决这个问题吗?

我正在使用 Express 和body-parser

这是我正在测试的 API 方法:

以下是我针对此 API 方法执行的测试:

我收到的失败:

最后,这是结果的摘录console.log(res)

0 投票
2 回答
18395 浏览

node.js - Supertest,测试安全的 REST API

我正在为受jwt. 一个 API 操作 POST/user/token返回jwt给定的 ausername和 a password,然后此令牌用于一系列操作,例如:

路由使用的位置jwt({secret: secret.secretToken}),因此令牌包含在 HTTP 标头Authorization中。

使用 supertest 进行测试时,我可以进行嵌套测试,但我想先获取令牌,然后使用此令牌测试其他操作。

如何避免为每个操作测试生成一个新令牌(见下文),但只使用一个由 POST /user/token 生成的令牌。