问题标签 [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 - 测试使用 jwt 令牌保护的路由的正确方法是什么?
虽然以下测试通过了,但我觉得我做错了。每次我需要测试安全路由时都需要登录吗?在获得初始令牌后,我尝试传递全局变量,但传递变量我发现非常反直觉。在 before() 调用中传递变量给我带来了与在嵌套承诺中传递/访问全局变量相同的问题。
node.js - 使用 chai-http 请求的查询参数未分配给 _query 对象
我正在为 ts 节点 api 编写单元测试。
我正在使用 chai-http 来实例化/模拟请求,但是使用此处文档中提到的 .query 选项似乎实际上并未将我的查询参数添加到请求对象 qs 参数中。
检查 req 对象,它已将它们添加到 _header: _path: 和 :url 但在 _query 或 qs 下没有任何内容。接受的底层函数req
将尝试使用
req.query.page
...req.query.size
等解析值,但由于请求查询对象未定义而中断。
但是 _header: , _path: 和 url: 显示
有谁知道为什么会这样?
是否有不同的 mocha 请求库可以提供正确的查询参数分配?
我已经尝试像这样手动添加它们,它可以工作并将它们添加到 qs. 但我希望 .query() 将它们添加到此处。
node.js - chai-http:无法在断言处读取未定义的属性“标题”。
当我在 gitlab 管道上运行单元测试时出现此错误,但它在我的本地环境中运行良好:
这是我的单元测试文件架构:
该应用程序也在 docker 环境中运行。
单元测试由以下命令运行:
common.js:
顶.js:
AuthGetRegister.js:
我以 AuthGetRegister 为例,但我的所有单元测试都出现相同的错误。
我已经尝试过这里提出的解决方法,但它不起作用。
asynchronous - 异步完成()在 moch-chai 中不起作用。无法访问 http 响应
我正在尝试遵循此处提供的内容-https: //www.chaijs.com/plugins/chai-http/
我的代码片段如下
即使我使用 done()it
添加了回调,我的步骤中的日志也会首先执行。但是,在那之后,我可以从 chai 块内部看到具有预期值的日志,然后是done is not a function
错误。
我的目标是将响应存储在一个对象中,并在接下来的多个步骤中访问它。
node.js - Chai:TypeError:无法读取未定义的属性“地址”
我开始使用 chai-HTTP 测试,但我真的不知道为什么我会不断收到
有谁知道代码有什么问题?我已经尝试了一些我在这里找到的解决方案,但它们似乎都不起作用。我要么无法读取“地址”,要么 app.adress 不是一个函数,是从服务器中删除 .default 。
这是测试文件:user.test.js
这是 server.js
javascript - TypeError: app.address 不是使用 chai-http 的函数
我正在尝试使用 Fastify 创建一个微 api,现在我正在测试该应用程序,但出现此错误:
我的应用程序文件是这个:
我的测试文件是:
我尝试过:
和
但它总是给我一些类似这样的错误:
有人知道我在做什么错吗?
node.js - 如何在 JSON 对象中发送数组以进行 ChaiHttp 单元测试?
我在 node.js 中有一个 API,我可以在其中发送多个 DeviceId 的有效负载,以更新它们的设置。例如,我要发送的示例有效负载是:
发送后,我会说 DeviceId 1,2,3 都将更新他们的设置。这工作正常,我已经在 Postman 本地对其进行了测试。我现在想编写一个单元测试来检查行为。我的单元测试如下:
在我发帖的代码中,我检查了 DeviceIds 是否出现在数组中。如果它们不在数组中,则会返回一条消息,说明 DeviceId 必须在数组中。这是代码:
当我运行上面的单元测试时,我陷入了这个 if 语句,我得到了返回的消息,即req.body.DeviceId
不是数组。如果我记录typeof req.body.DeviceId
,我会得到未定义的记录。为什么会这样?当我从邮递员本地发帖时,它工作正常。那就是当我在本地发送帖子时,帖子请求通过没有错误。但是chaiHttp
现在用于单元测试,我遇到了一些麻烦。可能有人知道为什么在单元测试中会发生这种情况,并使其不会发生,我不会被困在这个数组检查中。任何建议将不胜感激!
node.js - 当一内一请求时,Chai-http 不检查第二个断言
我正在尝试从 /signing 获取我的令牌变量,以将其提供给名称更改路线。但断言并不总是触发。有没有更好的方法来做到这一点?我可以使用 async-await 来解决这个问题吗,如果可以,如何解决?
node.js - 使用 chai-http 和 Jest 进行测试时,如何从我的 api 返回响应
我正在尝试使用下面的代码测试我的节点 api 索引端点
index.test.js
})
- 我对“索引路由测试”的失败测试通过但它应该失败(已解决)。
- 收到的响应是未定义的(我在控制台中登录)。
我的输出如下:
输出
如何返回响应?
javascript - 用 chai 测试 express.Router() 给出“TypeError: res.send is not a function”?
我有一个像这样的控制器/路由文件..
getValue 函数如下所示。
我正在用 chai 测试以下路线,我有一个如下所示的测试文件..
通过运行测试文件,它给了我这个错误:
- 参数 API 测试 GET 路由(/valuebyobject 应该返回所有对象:Uncaught TypeError: res.send is not a function
但是我无法弄清楚如何使用 chai 测试我的 API 并避免这种 TypeError 的解决方案。
但是从上面将控制器文件中的 express.Router() 更改为普通的 express() 使其工作。
但我想在我的应用程序中使用 expres.Router() 。有人可以帮助如何测试 express.Router() 的端点吗?