问题标签 [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.
node.js - 测试在节点中使用 mocha/supertest 重定向的请求
我似乎无法让以下集成测试通过使用mocha、supertest和should(和 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 中导出应用程序的方式是否存在问题。
node.js - 在单元测试中测试从服务器提供的 URL
我正在使用 Mocha 和 supertest 在我的 NodeJS 服务器中进行一些简单的测试。我现在想测试这种情况:
- 在超集中使用我的应用程序我提出请求
- 响应中包含一个 URL
- 我现在需要测试这个 URL 是否正确(通过 HTTP)
该 URL 将与在超集中运行的服务器相同。因此,如果我第一次调用.get('/some-data')
生成的 URL 将是完全限定的,例如http://localhost:3456/a-path
.
我不清楚如何设置它,或者是否可以使用这些工具。
node.js - 在 node.js 服务器上使用 supertest/superagent 读取响应输出缓冲区/流
我正在尝试编写一个测试来检查 API 路由是否输出具有正确内容的 ZIP 文件。
我正在使用 mocha 和 supertest 进行测试,我想实际读取输出流/缓冲区,读取 zip 文件内容并查看内容是否正确。
有什么想法我应该怎么做?当我尝试阅读res.body
时,它只是一个空对象。
node.js - 类似路线的超测和多次执行
我正在尝试测试两条几乎相同的路线,除了其中一条更具体,因为最新的 url 段是硬编码值(编辑),而另一条有参数(:slug)。
我遇到的问题是,当请求被执行时,它会调用两条路由(编辑,显示)导致我的模拟 never() 期望永远不会通过:(
难道我做错了什么?如果其中一条路线更具体,我不明白为什么两条路线都在执行...
这是测试:
这是我在上面嘲笑的users-controlle.js :
node.js - 如何使用 Passport 验证 Supertest 请求?
我正在使用 Passport.js 进行身份验证(本地策略)并使用 Mocha 和 Supertest 进行测试。
如何使用 Supertest 创建会话并发出经过身份验证的请求?
should.js - 如何启动机车服务器/应用程序进行集成测试?
我正在将 Express 应用程序转换为 Locomotive,但我无法弄清楚如何迁移我的测试。
在 Express 中,我只是在我的/test/test.api.organization.js
文件中执行此操作:
就是这样 - 只需require
'ing 应用程序文件就足够了。但是 Locomotive 没有app.js
orserver.js
文件,服务器只是从命令行用lcm server
.
如何启动服务器/应用程序并使我的测试再次工作?
node.js - 使用 express、node.js 构建的 restful api 的单元测试日志记录(使用 mocha、supertest 和 chai)
我用 mocha、chai 和 supertest 编写了一个简单的单元测试。
但问题是:console.log('test')
没有执行。所以我认为assert.equal( res.body.name, 'tobi');
也没有执行。所以我在没有单元测试的情况下编写代码,比如:
并且console.log()
都被执行了。所以我不知道为什么第一个代码不能显示日志信息。
node.js - 试图使用 supertest 来检查响应的主体 - 得到一个错误
我正在尝试使用 supertest 进行一些测试。这是我要测试的代码片段:
尝试测试 res 正文时出现错误:
这是超测中的错误,还是我的测试格式不正确?谢谢
node.js - Express.js 应用程序的单元测试与集成测试
我正在为 Express.js 应用程序编写测试,但我不知道如何在单元测试和集成测试之间进行选择。
目前我尝试过:
单元测试 - 使用 Sinon 进行 stubs/mocks/spies 和 Injects 对模块的依赖注入。使用这种方法,我必须对 MongoDB 和其他外部方法进行存根。
我考虑过对各个路由进行单元测试,然后使用集成测试来验证是否实际调用了正确的路由。
集成测试 - 使用 Supertest 和 Superagent,编写的代码要少得多(无需模拟/存根),但应该存在测试环境(数据库等)
我正在使用 Mocha 来运行两种类型的测试。
我应该如何在这两种不同的方法之间进行选择?