问题标签 [chai-http]
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 chai-http 测试文件启动服务器?
我在 mocha chai-http 测试的 before 块中启动我的节点服务器。
我让它非常适合单个测试文件。但是,当我尝试在单个命令中运行多个测试NODE_ENV=test mocha test/**/*.js
时,出现错误。
我试图让节点服务器在每个测试文件的不同端口上启动。这不起作用,出现节点服务器启动错误。
我现在认为,如果我可以有一个在我的其他测试文件之前运行的单个 mocha 文件来启动服务器,然后在其他测试文件之后运行一个文件来终止/停止服务器,那就太好了。
我该怎么办。
下面是我的一些代码:
这是我的一个测试文件供参考:
node.js - 使用 chai-http 设置接受的 CA 列表并忽略 SSL 错误
我正在尝试使用 chai/chai-http 为我的节点代码编写单元测试。在我将服务器切换到 HTTPS 服务器之前一切正常,但是因为我的证书是由内部公司根签名的,并且我使用的证书的公用名与 localhost 不匹配,所以 chai 在我的请求中抛出错误.
我想做以下事情:
忽略与域名验证相关的 SSL 错误。
设置要检查的 CA 列表。如果无法做到这一点,我可以跳过所有客户端证书检查。
我的代码如下:
我得到以下堆栈跟踪:
node.js - chai-http 和 async.each,抛出“超过 2000 毫秒的超时......”
我用 chai-http 进行了一个简单的测试,我尝试使用 async.each 测试几个 URL,但是当请求花费超过 2 秒时,我得到了错误。
我认为“完成”是正确的,但我不断收到错误消息,我做错了什么?即使没有异步,错误也会显示,只是简单的 chai 请求,只有一个请求......所以很确定不是异步问题,但我使用 chaiHttp 不好。
我也尝试使用“then/catch”而不是“end”,但结果是一样的。
我有一个类似的问题,在相同的测试脚本中,但使用数据库,如果查询时间超过 2 秒,它会中断......同样的错误,也使用“完成”:
tdd - Mocha TDD,Chai-http 没有记录任何响应
我正在尝试使用 chai-http 测试身份验证 api,但是我无法获得此特定块的任何响应 -
对于上面的代码块,我没有打印任何日志。谁能帮助我在这里错过什么?
mongodb - 当 mongo 中不存在集合时,mongoose 模型保存不会触发回调并传递给 chai-http
我创建了一个 post api 并使用 mongoose 模型将请求数据保存到数据库。然后我使用邮递员来测试这个api。一切正常。一切正常我的意思是创建集合,将数据保存到集合中,并从响应中获取数据。看下面的代码
然后我尝试向这个 api 添加测试。我将 mocha 与 chai-http 一起使用。看下面的代码
Step1:删除数据库(没有数据库,没有收集)
Step2:我使用 mocha path-to-test-file --timeout 20000 运行测试
Step3:重复步骤2
在第 2 步之后,我没有看到任何记录的数据(console.log('POST', res.body))。但是,已创建集合并将数据保存到 mongo 数据库。
在第 3 步之后,我确实看到了记录的数据。我假设是因为集合已经存在于第 2 步的 mongo 中。
然后我更进一步。我从第 1 步重复到第 3 步。但是这次我在模型保存回调中输入了一个日志,然后我意识到在step2之后也没有调用回调。但是如果我使用邮递员而不是 chai-http,它每次都有效。
有没有人有同样的问题?这是猫鼬模型和 chai-http 之间的能力问题吗?我错过了设置还是什么?
就个人而言,我认为无论 mongo 中是否存在该集合,它都应该有效。
mocha.js - mocha - chai-http 返回状态 500
我正在使用 Mocha、Chai 和 Chai HTTP 在 JavaScript CRUD 应用程序上运行测试。该应用程序使用 Sequelize。所有测试的函数 GET 和 POST 在浏览器中正确。但是,我的所有测试都以 500 状态失败。当我尝试获取未包含在我的应用程序中的路由时,我得到了 404 状态,所以我很确定服务器已正确连接到测试。有任何想法吗?
这是测试套件:
这是我的服务器:
node.js - Mocha、Chai 和 Sinon:检查 API 的内部工作
假设我有一个 POST 端点/user/:id
,这个端点在内部调用一个函数getUserData(id)
,然后将结果返回给调用者,调用者在JSON.stringify()
ing 之后又返回输出。
现在,我需要确保getUserData(id)
至少调用一次。getUserData(id)
当我使用chai-http
向服务器发出发布请求时,如何存根/间谍功能?这甚至是正确的方法吗?
javascript - 如何检查多个 chai-http 请求何时在 mocha before block 中真正完成?
我在一组 mocha 单元测试中使用了 before 块,并且在其中我正在迭代一组调用以从 REST API 获取信息。我正在使用 chai-http 来执行此操作。但是我遇到的问题是在我发出的一系列ndone()
请求完成之前调用该方法。在 end 块中调用 done 会导致多次调用,但放在块之外意味着它在我真正完成之前就被调用了!这是一个前块的例子:done()
有没有办法检测所有这些请求何时完成,然后我可以调用一个done()
来确保我的测试只在正确的上下文设置下执行?