问题标签 [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 投票
1 回答
5936 浏览

mocha.js - 运行测试后 chai-http 未退出

我遇到了一个问题,我的 mocha 测试在使用 chai-http 运行后没有完成。Mocha 只是在测试后挂起并最终超时(至少在我的 CI 上)。

0 投票
1 回答
759 浏览

mocha.js - Chai http Promise 永不失败

我正在使用 Chai http 和 promise。下面的测试应该失败,但它没有调用 then 函数就通过了。如果我添加 done 参数以等待异步函数完成,它会失败(正确)。难道我做错了什么?

0 投票
1 回答
518 浏览

node.js - 如何将 Chai-HTTP 与 Sinon 一起使用?

这是我要测试的路线:

我可以使用 chai-http 来做这样的事情(伪代码):

但是, api/users 路由会进行数据库调用。我将如何使用 sinon 来存根这个方法(replaceUserOnDuplicate),以便它返回一个虚拟响应(如 0 或任何东西)?

可能吗?我正在查看 Chai-HTTP 语法,我发现没有空间插入任何 Sinon 存根方法。

作为参考,这里是 dbService (mySQL node.js):

谢谢你的帮助!

0 投票
0 回答
642 浏览

express - 未捕获的 AssertionError:预期 { Object (address, street, ...) } 深度等于 { Object (address, street, ...) } + 预期 - 实际

这是我在服务器上发布的对象

我从服务器接收的这个对象

当我在服务器中进行测试时,测试块看起来像这样

*它给了我测试错误*

服务器是 node.js 和 express.js,数据库是猫鼬。

架构看起来像这样

** 我正在使用 chai-http 测试服务器。响应是 json 格式"**

0 投票
0 回答
1459 浏览

node.js - 在运行测试之前等待服务器侦听

我正在使用 Mocha + Chai + chai-http 来测试我的服务器应用程序。问题是,它需要在实际启动服务器之前做一些事情(主要是数据库写入)。这会使我的测试崩溃,因为在服务器启动之前需要运行的任务尚未执行。这是我正在使用的代码:

在测试中:

在运行测试之前,我可以做些什么来等待服务器启动?

0 投票
1 回答
1310 浏览

mocha.js - 如何用摩卡TDD koa2?

我正在尝试使用 koa2/mocha/chai/chai-http 进行 TDD 工作流,但我的问题是,当我运行测试时,koa2 服务器在测试完成后继续运行。所以我每次都必须 Ctrl+C (杀死)它。

谁能告诉我如何设置一个 TDD 工作流,在所有测试运行后服务器停止?

另外,我想查看测试文件的更改,并在检测到更改后立即重新运行测试......有人可以帮忙吗?在网上找不到任何东西-.-

我目前拥有的(简化):

包.json:

服务器.ts:

测试:

谢谢你。

0 投票
1 回答
100 浏览

javascript - 第一次异常后继续测试 | 柴 | 摩卡

我正在使用 http 请求编写单元测试。我想测试不同的字段作为响应,但是当我检查第一个异常 CHAI 中的字段时,CHAI 将全部关闭,单次测试也是如此。我希望 CHAI 继续执行他的测试。我怎样才能做到这一点?

这是一个如何使用expect的例子。

expect(res.body.data.user_data,"last_name").have.property('last_name'); expect(res.body.data.user_data.last_name,"last_name").be.a('number'); expect(res.body.data.user_data,"username").have.property('username'); expect(res.body.data.user_data.username,"username").be.a('string');

0 投票
0 回答
825 浏览

node.js - 我如何在每个请求中保留 cookie

我是摩卡和柴的新手。

我正在使用 mocha 和 chai 将集成测试用例编写到 NodeJS 应用程序中。

我一直在寻找一个通用的解决方案。

在这里,我正在解释我在做什么。

简而言之,我的观点是

如何为每个请求保留 cookie

我的节点服务器在端口 3000 上的单独机器上运行,测试用例将在另一台机器上。

这是我的应用程序目录结构

在此处输入图像描述

一、登录API测试用例

二、获取账户列表

我为每个模块创建了单独的文件。

出色地,

所有 API 都基于会话进行身份验证。

所以,

有没有办法在 chai-http 插件上全局设置 cookie?

基本上,

登录测试用例会设置cookie,之后每个请求都会携带这个cookie。

谢谢

0 投票
0 回答
470 浏览

typescript - 为什么我的测试在 Mocha 上随机失败(使用 typeOrm、路由控制器)

我正在尝试在 nodejs 上构建一个应用程序。使用打字稿和库,如typeorm路由控制器

虽然应用程序的 API 服务器在正常运行时工作正常。但是,运行 npm 测试时似乎会出现间歇性错误。测试通常在 mocha 脚本之前和之后各自挂断。但是重新运行测试通常会成功。

例子 - 在此处输入图像描述

并在取得成功后立即重新运行 - 在此处输入图像描述

该应用程序可以在这里找到 ,为了让生活更轻松,对于那些有兴趣提供帮助的人,我已经为它们创建了一个 docker 图像。您可以简单地执行 adocker pull shaloms/typewrite然后然后docker run -it shaloms/typewrite:test-image2cd 进入 typewrite 目录,然后运行npm run test​​.

测试写错了吗?或者我在代码架构中做错了什么?或者这是 ORM 库中的错误。

任何帮助都感激不尽。

0 投票
0 回答
313 浏览

typescript - 无法导入声明文件

我正在尝试为我的 RESTAPI 服务器设置一些测试。我使用打字稿。我尝试导入chaichai-http使用 ES6 语法,但显然不支持(此处为 Github 问题)。我收到一个错误,所以我不得不require直接访问文件。

现在的事情是打字稿由于某种原因没有导入@types/chai-http,所以当我尝试使用时expect(res).to.have.status(201);,我得到一个错误,编译器抱怨

如何直接导入类型声明?

谢谢