问题标签 [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.
gulp - Gulp Karma“脚本错误”
我正在使用 gulp-karma + mocha + chai + sinon 来对一些前端进行单元测试。
我不断遇到的令人讨厌的事情是 karma 在没有任何其他相关细节的情况下吐出的“脚本错误”消息。
我怎样才能让业力也显示错误的来源?
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
服务的请求有关。我该如何规避这个?
karma-runner - 如何使用 Karma 发出 ajax 请求
我有一个测试调用一个请求外部 csv 文件的函数。但由于某种原因,我不能使用相对路径。例如,我必须这样做:
而不是能够做到:
第二个示例在实际站点上运行良好,但由于某种原因,由于 Karma 在base
目录中运行,我必须从 base.xml 请求它。我怎样才能做一个正常的相对网址?
以下是karma.conf.js
我自定义的部分:
这是我的回购
javascript - 在 karma-mocha 中测试 Angularjs ui-Router 的默认状态
我想在 karma 中编写测试 a 来检查默认状态。如何为 UI-Router 设置错误的 URL?
JS文件:
测试:
请帮我。
javascript - 运行回调时的摩卡测试
我正在测试一个 api,它在函数末尾的回调中已经有一个回调。我想将其包装在测试中以验证对象是否正确,但这似乎不起作用。callbackEnd() 被调用,但就是这样。
在库上一个脚本加载成功:
Mocha.js 测试:
unit-testing - 没有期望时如何使摩卡咖啡失败()
如果 it() 函数中没有提供期望,是否可以设置 mocha 以将测试报告为失败?
想法是这样的工作流程:
- 添加一个带有 desc 和回调函数的 it()
- it() 被报告为失败,因为回调中没有设置期望
- 增加了期望
- it() 仍然报告为失败,因为没有实现,因为没有达到预期
- 添加了实现
- it() 被报告为成功
- 重构
因此,主要意图是在进行规范 TDD 样式开发时,新添加的测试报告为失败,直到设置期望(或测试集为未决而没有回调或跳过()),这再次报告为失败,一旦实施完成,报告为成功。
我看到 it() 成功而不期望的价值是,一旦添加它,它的失败现在证明它实际上正在工作并证明它正在失败。是故意的还是我错过了什么?
此外,如果有人知道如何在 karma.conf.js 中进行设置,那就太好了。
谢谢
angularjs - Angularjs Karma 单元测试 - 重新创建 $locale
我们在 angularjs 中使用 karma 和 mocha 进行单元测试。但是我们在测试我们的 $locale 东西时遇到了问题,比如日期格式。
我们有三个测试,是否为每个测试重新创建 $locale ?如果我在这些测试中使用服务,我的服务是否也会重置,或者测试 1 是否可能会影响测试 2,因为我的服务包含一些数据?
这是一个代码片段:
问题是,如果在使用 'de' 的测试之后再次在 $locale 中使用 'de' 的测试是英文格式值。如果我在第二个定位器“de”之前放置一个定位器“tr”,它就可以工作。为什么 $locae 的值会发生变化?是否可以 A) 防止 $locale 更改或 B) 在每次测试之前重置我的服务。
requirejs - 设置 karma、chai、requirejs、chai-jquery
我接近让我们的测试与 Karma 一起运行,但我错过了最后一步(我认为),chai-jquery
开始表现,我尝试了两个不同的插件https://www.npmjs.com/package/karma- chai-jquery和https://www.npmjs.com/package/karma-jquery-chai没有成功,即使按照他们的各种 github 问题或自述文件中设置的指定顺序。
这是我的tests-main.js
文件
这是我的karma.conf.js
(删除了所有非关键或默认选项)
这是一个“工作”的规范文件,它正确使用获取和的引用chai
,但每次jquery
加载都失败。chai-jquery
我得到的错误是:
这是我的目录结构:
最后,我的package.json
我经常遇到的一些错误:
更改框架中的顺序时karma.conf
即使在安装插件之后
有时我会得到这样的东西:
任何帮助将不胜感激,我无法解决这个问题。
编辑:根据路易斯的建议进行小改动
javascript - Angular - Mocha - 当我将多个控制器添加到同一个模块时测试失败
当我将一个控制器连接到一个模块时,我可以使用 mocha, karma 来成功测试它。但是当我将两个控制器添加到同一个模块时,测试会失败。这是为什么?
我在同一个模块上定义了 2 个控制器。我可以手动测试控制器并且它们可以工作。
和2个单元测试:
我得到:
现在,如果我将 invoiceController.js 和 invoiceController.mocha.js 的模块名称更改为 invoiceM,那么这两个测试都有效。
我一定做错了什么...
node.js - 如何使用数据在 mocha 中编写发布请求测试以测试响应是否匹配?
问题: 我如何在 mocha 中编写一个发布请求测试来测试响应是否匹配?
响应将只是一个 url 字符串,因为它是 3rd 方服务的重定向。
工作示例有效负载:
member.controller.js // 发布方法
预期的重新发送
工作示例 GET 请求测试