问题标签 [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.

0 投票
0 回答
284 浏览

node.js - SyntaxError:在 mocha 和 chai http 测试中位置 0 的 JSON 中出现意外的令牌 A

使用 mocha 和 chai-http 为 post 端点运行集成测试。但是为了上帝的爱,不断收到 SyntaxError: Unexpected token A in JSON at position 0. 不确定下面的代码有什么问题

错误是

0 投票
1 回答
59 浏览

typescript - 无法使用 done() 或 async/await 来修复我的承诺无法解决

我正在尝试使用 chai-http 和 mocha 学习 api 测试。我已经尝试过done()async/await但我不明白为什么它没有解决以下问题 -

错误-

规格文件-

否则,我没有正确实施我尝试过的解决方案。非常感谢任何帮助。

0 投票
1 回答
330 浏览

node.js - 如何使用 chai-http 下载文件?

这是我的问题:我必须测试一个丰富文件并使它们可下载的路由。我遇到的问题是我在测试期间无法获得丰富的文件。

我设法使用 Axios(用于终端命令)恢复此文件,但我必须使用 chai-http 进行测试。

路由器.js

testEnrichment.js

先感谢您 !

0 投票
1 回答
238 浏览

node.js - 如何在 mocha 中使用嵌套的 json 数据测试图像上传

这是我的测试片段。我需要使用嵌套 json 和图像传递其他数据。

`

`

它适用于没有嵌套 json 的参数,但不适用于嵌套 json。如何传递带有徽标的嵌套 json?

0 投票
1 回答
35 浏览

javascript - Chai-http [POST] 不允许在 bodyParameters 上发送数组(API 测试和 Javascript)

我在我的测试用例中发现了这种奇怪的行为。

让我们重新创建场景

我确实有 2 节课:

API.ts -> 指的是我创建请求的类。

API-op.ts -> 指的是我通过断言、期望等进行验证的类。

上下文:方法之间存在一些依赖关系。我的意思是,如果我想发布,我首先需要一个 ID,该 ID 来自一个名为 postCreateId 的方法。获得响应正文后,我将使用该 ID 传递给我的 postPublishArt 方法

所以。

我在 API.ts 上有这个方法

因此,我在 API-op.ts 上调用该方法,如下所示:

在 Postman 上,bodyparameter 需要是这样的:

注意方括号,因为 body 参数要求 ids 键必须是数组。

错误是什么:就像我只需要一个 id 作为数组传递一样,一旦我转换了该变量并将其发送到 POST 方法。POST 方法显示此错误:

我认为当您使用 ARRAY 发送 POST 但只传递一个参数时,问题与 chai-http 有关。

让我知道我是否错了

0 投票
1 回答
312 浏览

javascript - Sinon withArgs 自定义匹配器

我正在尝试使用自定义匹配器来存根一个函数,该函数在我的 node.js 服务器的测试函数中执行两次。我正在测试的函数fs.readFileSync()使用不同的参数使用了两次。我想我可以使用stub.withArgs()自定义匹配器两次来为两者返回不同的值。

我面临的问题是,chai-http每当我 stub 用于测试我的休息端点时,我总是得到一个 400 状态代码fs.readFileSync()。我的存根实现似乎阻止了休息端点甚至在休息端点内执行功能。当匹配器函数触发时,我可以验证(通过日志记录)它是否通过我node_modules的来查看是否有任何fs.readFileSync()函数需要返回备用值。

当我运行我的 mocha 测试时,在自定义匹配器中记录了一些日志,我可以验证node_moduleslikeraw-body有他们的fs.readFileSync()函数被存根,但不应该返回替代值,因为匹配器返回false(因为参数不通过我的匹配器)。但是由于某种原因,我的任何fs.readFileSync()函数都没有被存根,甚至没有被执行,因为我的休息端点最终只返回了 400 空响应。

有没有一种特殊的方法来存根函数,比如fs.readFileSync在测试时chai-http?我之前能够成功存根fs.writeFileSync(),但我在存根时遇到了麻烦fs.readFileSync()

0 投票
1 回答
46 浏览

node.js - 如何在节点中启动柴测试?

我有一个节点/打字稿应用程序。我正在尝试使用 chai 和 chai-http 测试路线。当我写一个明确的名字时,我可以启动一个文件:yarn test myroute.test.ts,但yarn test在根目录什么都不做。

此外,从不进行测试。我只在我的终端收到一个Done in 0.06s.。没有“通过”或“失败”。

这是测试:

package.json 脚本是:"test": "test". 我认为这是完全错误的,但是 chai doc 没有说明要在这里写什么。

0 投票
0 回答
84 浏览

node.js - 如何在 chai 测试中使用 async/await?

我有一个没有 async/await 语法的 chai 测试,但它会崩溃。如何解决?

错误是:

error 错误 [ERR_SERVER_ALREADY_LISTEN]:Listen 方法已被多次调用而没有关闭。代码:'ERR_SERVER_ALREADY_LISTEN'

这是使用经典语法和非工作 async/await 语法的相同测试:

0 投票
0 回答
16 浏览

express - 使用 chai.request 会使所有测试失败

我正在尝试使用 mocha、chai 和 chai-http 进行简单测试。出于测试目的,我使用 Express 4 typescript 模板在 Visual Studio 2019 中创建了一个简单的项目。

此外,我安装了以下软件包:

  • 摩卡(+@types/摩卡)
  • 柴http
  • @types/superagent(这解决了一些缺失的名字)

然后我更改了项目选项以使用 mocha 测试框架并指向正确的测试文件夹。

然后我创建了一个打字稿 mocha 单元测试文件并将其内容更改为以下内容(未更改的测试文件按预期工作):

app.ts 文件如下所示:

我只添加了最后一行“导出默认服务器;”

当我现在运行测试时,所有测试都失败了,即使测试 B 应该通过。当我删除对 chai.request() 的调用时,测试按预期通过。此外,当我将字符串传递给 chai.request() 时,第二个测试通过了。

另一个奇怪的事情是,当我使用调试运行这些测试时,我没有得到任何关于使用 chai.request() 调用的测试的进一步信息,即测试 A。当我使用调试运行测试 B 时,它通过了,但是当我运行时它通常会失败,但会运行两次,一次尝试通过,一次失败。通过尝试需要 4ms 失败尝试 <1ms。

我还尝试了很多我在 google/stackoverflow 上找到的东西,但我不记得了,因为我已经尝试让它工作了很长一段时间。不过,大多数这些事情一开始就是让它运行起来的。

0 投票
1 回答
36 浏览

node.js - 使用 Chai-http 在 mocha 测试用例中找不到 Done

我正在学习使用 mocha 和 chai 为节点应用程序编写测试用例,我已经编写了以下测试用例

但它在 done() 下方显示了读取摆动;功能
在此处输入图像描述

我是否需要添加一些类型才能使其正常工作我缺少什么,我尝试再次安装 chai-http 但仍然是同样的问题