问题标签 [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.
mocha.js - 请求挂在风帆错误上
如果您通过 supertest 向sais 发出请求,则如果您返回错误,则响应会挂起。在这里,我们已经扬帆起航,并将将其作为针对实时数据库的集成测试运行。
node.js - 如何使用 supertest 和 agent 在 mocha 测试中发出经过身份验证的请求?
登录后,我无法运行经过身份验证的测试(服务器返回401 Unauthenticated
)。
会话正在设置这样的cookie:
javascript - 使用 supertest 测试下载是否成功
我正在使用supertest测试我的 API 端点,效果很好,但我不知道如何测试文件下载是否成功。
在我的路由文件中,我将端点定义为:
函数getFile()
看起来像这样:
然后,在我的测试文件中,我尝试以下操作:
我确定该文件已找到,因为它注销了File found!
. 如果我手动尝试它也可以正常工作,但由于某种原因,摩卡返回Error: expected 200 "OK", got 404 "Not Found"
。
我已经尝试过不同的 mime-types 和 supertest .set("Accept-Encoding": "*")
,但没有任何效果。
有人知道怎么做吗?
node.js - 使用 supertest、express 和 mocha 进行 grunt 测试 api
我有一个由 express 运行的 https 服务器,我使用 mocha 和 supertest 对其进行测试。
我的问题是 - 如果我只运行测试 - 没关系。如果我尝试使用测试运行 gruntfile 然后运行 express - 我看到很多 EADDRINUSE 错误,即使在测试文件中我使用 app.close() 执行 after()。同样适用于测试中的监视任务。
这是我的示例测试:
我知道这些测试远非完美。我刚刚通过适当的软件测试开始我的冒险。
所有那些“已经在使用的端口”都是显而易见的,而且它们都没有......给出任何问题。所有测试工作正常,服务器工作正常,但标准输出很疯狂。这种行为远非理想,并且可能充满潜在问题和不稳定问题。
我的问题是 - 如何摆脱它?
我的想法是:
创建专用服务器以在不同的端口上进行测试。不幸的是,我必须知道如何实现这一点。
如果 superagent 未运行,则为它运行服务器设置一些条件,或者只是...将其传递给 superagent?
使用其他东西然后超级代理(如请求,但我不确定是否所有 cookie 和 node_tls_reject_unauthorized 都可以工作。
正如你所看到的 - 我在这个话题上挣扎并且问题多于答案,并且没有足够的经验知道在哪里看。
我很感激任何帮助。
编辑:
我发现,我可以做到:
它开始在另一个端口上进行测试,但是......整个 server.js 无论如何都被加载了,所以它也开始了。然后,当它与运行的服务器一起触发时,有明显的EADDRINUSE。
node.js - 超测不返回结果,节点实例不退出
我只是在学习测试,我已经做了几个小时没有成功。每次我运行时Mocha
,我的测试都会显示在终端中并且不返回任何结果,如下所示:
之后它保持空白。此外,节点进程在测试后不会关闭,当它们堆积起来时,它们会使我的计算机崩溃。
这是我的示例测试:
这是我的 server.js
node.js - 使用 sinon fake timers, express js, jasmine-node, and supertest进行测试
我一直在编写健身 webkit 应用程序的服务器端。HTTP 调用被发送到服务器以在应用程序中启动基于时间的“锻炼”。我一直在使用 jasmine-node 进行测试,到目前为止它一直在工作。唯一不起作用的是如果我试图使用 sinon 假计时器。
我遇到的问题是测试没有通过下面代码中的 it 语句。如果我删除 clock.tick 函数调用,它会起作用。如果时钟已经滴答了 120000 毫秒,为什么它不会从 it 语句继续前进?如果在 get 请求的 .end 中没有注释掉 clock.restore() ,请求永远不会完成。我无法弄清楚问题究竟出在哪里(jasmine-node vs express vs supertest)。在那之后,仍然是解决问题的问题。
迄今为止的行为
- 时钟完全初始化后,测试将无法完成。
- 时钟初始化并且注释掉的 clock.restore() 未注释,如果时钟根本没有被打勾,它就可以工作。
- 初始化时钟并注释掉 clock.restore() 后,它挂起,但控制台中记录了“完成”。
这是一些示例代码:
javascript - 在浏览器中进行 RESTful API 测试
我正在编写 RESTful 应用程序以及文档。因为文档是作为网页编写的,所以我希望在文档中嵌入 REST 服务测试。
我使用 Jasmine 进行测试,并且一直在寻找测试 REST 调用的一些简化方法。Frisby看起来像我需要的东西,但它在 Node.js 中运行,而不是在浏览器中运行。
您是否知道任何类似于 Frisby 测试但在浏览器环境中的库?对于它的价值,我找到了 SuperTest,它在便携式superagent上运行,但我不知道它是否可以与 Jasmine 一起使用(它们与 Mocha 密切相关)。
更新:不,超级测试(还)不能在浏览器中工作:(
express - how do I set up express with mocha and supertest for integration testing?
I'm new to Node.js, express and supertest, and can't figure out how to set up a basic test. I created an app with:
added mocha and supertest to the dependencies:
then wrote this simple test:
Test fails:
Software Versions:
express - Mocha + supertest + assert:在测试失败时打印响应正文
我正在使用 mocha、supertest 和 assert 来测试我的 Express 应用程序。我的 Express 应用程序在开发模式下运行,因此只要请求失败,它就会以 JSON 形式返回有用的调试信息。我想在我的测试套件中打印这些数据,但前提是测试失败。我的一个测试示例(在 CoffeeScript 中):
如何制作 mocha print res.body,但仅在测试失败时?如果可能的话,我宁愿不必console.log(res.body) if test.failed
在每个describe
块中放置类似的东西。
node.js - 测试 express API 需要本地服务器
我读过我可以在 Express 应用程序 (nodeJS) 中运行 mocha 测试并进行超级测试,因此不需要在不同的终端会话中运行应用程序。无论我尝试什么,它总是以连接错误结束。
为了配置我们的持续集成,显然集成和单元测试(mocha、supertest、should)应该能够在节点服务器不运行的情况下运行
书面测试是为了验证我们应用程序的内部 api 端点谁能解释如何在不运行应用程序的 express 服务器的情况下运行测试,以便它们可以与例如 strider 集成