问题标签 [karma-mocha]

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 回答
280 浏览

gulp - Gulp Karma“脚本错误”

我正在使用 gulp-karma + mocha + chai + sinon 来对一些前端进行单元测试。

我不断遇到的令人讨厌的事情是 karma 在没有任何其他相关细节的情况下吐出的“脚本错误”消息。

我怎样才能让业力也显示错误的来源?

在此处输入图像描述

0 投票
1 回答
756 浏览

javascript - Angular / Karma - $http.get 未执行

我有一个 AngularJS 项目,它使用 Karma 在浏览器中运行一些单元测试。我使用 mocha 作为测试框架。

但是,我有一些规范测试需要读取一些 JSON 文件并检查它们是否符合给定的约定规范(类型、名称约定等)。

我应该明确指出,我要测试的是这些文件的实际内容。不是通过 Angular Mock 的$httpBackend.

我正在标记 JSON 文件以便在karma.conf.js.

如果我运行karma start,我可以浏览/base/static/assets/json/cards/something.json并查看正在提供的文件。

接下来,在我的测试中,the$http$q服务都被注入了。

然后我尝试使用$http.get. 最后,从返回$http.get的 Promise 被整理并调用以$q.all等待它们全部完成,然后再调用done()并继续。

当我的测试运行时,我看到以下控制台输出:

起初我认为它可能已经超过了超时时间,因为加载时间很长,但文件只有 95kb。

接下来,我想知道自定义的 Promise 接口(.success.error)是否$http破坏了该$q.all方法。但显然不是。

/base/static/assets/json/cards/admissions.json最后,我尝试在所有测试开始时提出独立请求。

正如预期的那样,它返回一个承诺,但它永远不会被解决,因为没有响应被发回。我检查了网络工具以查看返回的内容,结果发现甚至一开始都没有发出请求。代码肯定会运行,但由于某种原因$http实际上并没有发出请求。

我的倾向是,这与 Angular Mocks 拦截$http对其自身$httpBackend服务的请求有关。我该如何规避这个?

0 投票
0 回答
339 浏览

karma-runner - 如何使用 Karma 发出 ajax 请求

我有一个测试调用一个请求外部 csv 文件的函数。但由于某种原因,我不能使用相对路径。例如,我必须这样做:

而不是能够做到:

第二个示例在实际站点上运行良好,但由于某种原因,由于 Karma 在base目录中运行,我必须从 base.xml 请求它。我怎样才能做一个正常的相对网址?

以下是karma.conf.js我自定义的部分:

这是我的回购

0 投票
0 回答
466 浏览

javascript - 在 karma-mocha 中测试 Angularjs ui-Router 的默认状态

我想在 karma 中编写测试 a 来检查默认状态。如何为 UI-Router 设置错误的 URL?

JS文件:

测试:

请帮我。

0 投票
1 回答
323 浏览

javascript - 运行回调时的摩卡测试

我正在测试一个 api,它在函数末尾的回调中已经有一个回调。我想将其包装在测试中以验证​​对象是否正确,但这似乎不起作用。callbackEnd() 被调用,但就是这样。

在库上一个脚本加载成功:

Mocha.js 测试:

0 投票
4 回答
1650 浏览

unit-testing - 没有期望时如何使摩卡咖啡失败()

如果 it() 函数中没有提供期望,是否可以设置 mocha 以将测试报告为失败?

想法是这样的工作流程:

  1. 添加一个带有 desc 和回调函数的 it()
  2. it() 被报告为失败,因为回调中没有设置期望
  3. 增加了期望
  4. it() 仍然报告为失败,因为没有实现,因为没有达到预期
  5. 添加了实现
  6. it() 被报告为成功
  7. 重构

因此,主要意图是在进行规范 TDD 样式开发时,新添加的测试报告为失败,直到设置期望(或测试集为未决而没有回调或跳过()),这再次报告为失败,一旦实施完成,报告为成功。

我看到 it() 成功而不期望的价值是,一旦添加它,它的失败现在证明它实际上正在工作并证明它正在失败。是故意的还是我错过了什么?

此外,如果有人知道如何在 karma.conf.js 中进行设置,那就太好了。

谢谢

0 投票
0 回答
321 浏览

angularjs - Angularjs Karma 单元测试 - 重新创建 $locale

我们在 angularjs 中使用 karma 和 mocha 进行单元测试。但是我们在测试我们的 $locale 东西时遇到了问题,比如日期格式。

我们有三个测试,是否为每个测试重新创建 $locale ?如果我在这些测试中使用服务,我的服务是否也会重置,或者测试 1 是否可能会影响测试 2,因为我的服务包含一些数据?

这是一个代码片段:

问题是,如果在使用 'de' 的测试之后再次在 $locale 中使用 'de' 的测试是英文格式值。如果我在第二个定位器“de”之前放置一个定位器“tr”,它就可以工作。为什么 $locae 的值会发生变化?是否可以 A) 防止 $locale 更改或 B) 在每次测试之前重置我的服务。

0 投票
1 回答
3630 浏览

requirejs - 设置 karma、chai、requirejs、chai-jquery

我接近让我们的测试与 Karma 一起运行,但我错过了最后一步(我认为),chai-jquery开始表现,我尝试了两个不同的插件https://www.npmjs.com/package/karma- chai-jqueryhttps://www.npmjs.com/package/karma-jquery-chai没有成功,即使按照他们的各种 github 问题或自述文件中设置的指定顺序。

这是我的tests-main.js文件

这是我的karma.conf.js(删除了所有非关键或默认选项)

这是一个“工作”的规范文件,它正确使用获取和的引用chai,但每次jquery加载都失败。chai-jquery

我得到的错误是:

这是我的目录结构:

最后,我的package.json

我经常遇到的一些错误:

更改框架中的顺序时karma.conf

即使在安装插件之后

有时我会得到这样的东西:

任何帮助将不胜感激,我无法解决这个问题。

编辑:根据路易斯的建议进行小改动

0 投票
1 回答
1087 浏览

javascript - Angular - Mocha - 当我将多个控制器添加到同一个模块时测试失败

当我将一个控制器连接到一个模块时,我可以使用 mocha, karma 来成功测试它。但是当我将两个控制器添加到同一个模块时,测试会失败。这是为什么?

我在同一个模块上定义了 2 个控制器。我可以手动测试控制器并且它们可以工作。

和2个单元测试:

我得到:

现在,如果我将 invoiceController.js 和 invoiceController.mocha.js 的模块名称更改为 invoiceM,那么这两个测试都有效。

我一定做错了什么...

0 投票
2 回答
33983 浏览

node.js - 如何使用数据在 mocha 中编写发布请求测试以测试响应是否匹配?

问题: 我如何在 mocha 中编写一个发布请求测试来测试响应是否匹配?

响应将只是一个 url 字符串,因为它是 3rd 方服务的重定向。

工作示例有效负载:

member.controller.js // 发布方法

预期的重新发送

工作示例 GET 请求测试