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

node.js - 测试在节点中使用 mocha/supertest 重定向的请求

我似乎无法让以下集成测试通过使用mochasupertestshould(和 coffeescript)的快速项目。


考试


相关应用代码


失败


显然,应用程序代码没有做任何有用的事情。我只是想通过考试。

将期望 ( res.text.should.include('logged in')) 放在 end 函数之外和函数内部会expect产生相同的结果。我还尝试了函数调用的变体,例如删除.type('form')调用,并使用.send(user: 'username', password: 'password')而不是两个.field()调用。

如果它意味着什么,当应用程序在本地运行时向应用程序发送一个 curl POST 请求会产生相同的输出 ( Moved Temporarily. Redirecting to //127.0.0.1:3456/login)

我有一种感觉,这是一个微不足道的错误。可能是我在应用程序代码或测试代码中忘记的东西。

有什么建议么?

编辑 1:还值得注意的是,在浏览器中单击提交按钮时,我得到了预期的结果(一条消息)。

编辑 2:进一步调查显示响应正文中任何重定向结果的输出。Moved Temporarily. Redirecting to ...这让我想知道我在 app.js 中导出应用程序的方式是否存在问题。

0 投票
1 回答
165 浏览

node.js - 在单元测试中测试从服务器提供的 URL

我正在使用 Mocha 和 supertest 在我的 NodeJS 服务器中进行一些简单的测试。我现在想测试这种情况:

  1. 在超集中使用我的应用程序我提出请求
  2. 响应中包含一个 URL
  3. 我现在需要测试这个 URL 是否正确(通过 HTTP)

该 URL 将与在超集中运行的服务器相同。因此,如果我第一次调用.get('/some-data')生成的 URL 将是完全限定的,例如http://localhost:3456/a-path.

我不清楚如何设置它,或者是否可以使用这些工具。

0 投票
5 回答
16047 浏览

node.js - 在 node.js 服务器上使用 supertest/superagent 读取响应输出缓冲区/流

我正在尝试编写一个测试来检查 API 路由是否输出具有正确内容的 ZIP 文件。

我正在使用 mocha 和 supertest 进行测试,我想实际读取输出流/缓冲区,读取 zip 文件内容并查看内容是否正确。

有什么想法我应该怎么做?当我尝试阅读res.body时,它只是一个空对象。

0 投票
3 回答
10714 浏览

node.js - 在远程 URL 上重用 Supertest 测试

我在开发过程中使用MochaJSSuperTest来测试我的 API,我非常喜欢它。

但是,我还想在将代码推送到生产环境之前,将这些相同的测试用于远程测试我的登台服务器。

有没有办法通过远程 URL 或代理向远程 URL 提供请求?

这是我使用的测试示例

0 投票
2 回答
749 浏览

node.js - 类似路线的超测和多次执行

我正在尝试测试两条几乎相同的路线,除了其中一条更具体,因为最新的 url 段是硬编码值(编辑),而另一条有参数(:slug)。

我遇到的问题是,当请求被执行时,它会调用两条路由(编辑,显示)导致我的模拟 never() 期望永远不会通过:(

难道我做错了什么?如果其中一条路线更具体,我不明白为什么两条路线都在执行...

这是测试:

这是我在上面嘲笑的users-controlle.js :

0 投票
8 回答
38253 浏览

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

我正在使用 Passport.js 进行身份验证(本地策略)并使用 Mocha 和 Supertest 进行测试。

如何使用 Supertest 创建会话并发出经过身份验证的请求?

0 投票
1 回答
758 浏览

should.js - 如何启动机车服务器/应用程序进行集成测试?

我正在将 Express 应用程序转换为 Locomotive,但我无法弄清楚如何迁移我的测试。

在 Express 中,我只是在我的/test/test.api.organization.js文件中执行此操作:

就是这样 - 只需require'ing 应用程序文件就足够了。但是 Locomotive 没有app.jsorserver.js文件,服务器只是从命令行用lcm server.

如何启动服务器/应用程序并使我的测试再次工作?

0 投票
1 回答
5074 浏览

node.js - 使用 express、node.js 构建的 restful api 的单元测试日志记录(使用 mocha、supertest 和 chai)

我用 mocha、chai 和 supertest 编写了一个简单的单元测试。

但问题是:console.log('test')没有执行。所以我认为assert.equal( res.body.name, 'tobi');也没有执行。所以我在没有单元测试的情况下编写代码,比如:

并且console.log() 都被执行了。所以我不知道为什么第一个代码不能显示日志信息。

0 投票
5 回答
41891 浏览

node.js - 试图使用 supertest 来检查响应的主体 - 得到一个错误

我正在尝试使用 supertest 进行一些测试。这是我要测试的代码片段:

尝试测试 res 正文时出现错误:

这是超测中的错误,还是我的测试格式不正确?谢谢

0 投票
1 回答
1332 浏览

node.js - Express.js 应用程序的单元测试与集成测试

我正在为 Express.js 应用程序编写测试,但我不知道如何在单元测试和集成测试之间进行选择。

目前我尝试过:

单元测试 - 使用 Sinon 进行 stubs/mocks/spies 和 Injects 对模块的依赖注入。使用这种方法,我必须对 MongoDB 和其他外部方法进行存根。

我考虑过对各个路由进行单元测试,然后使用集成测试来验证是否实际调用了正确的路由。

集成测试 - 使用 Supertest 和 Superagent,编写的代码要少得多(无需模拟/存根),但应该存在测试环境(数据库等)

我正在使用 Mocha 来运行两种类型的测试。

我应该如何在这两种不同的方法之间进行选择?