问题标签 [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 回答
3997 浏览

javascript - 使用 karma-webpack 时找不到模块错误

我有以下karma.conf.js文件,我还有一个名为的测试文件example.spec.js,它位于app/compontents/example/example.spec.js我试图导入我的Example.js file

但是我得到了以下错误Error: Cannot find module "app/components/Example/Example.jsx"我尝试了许多不同的想法,例如./Example.jsx, ./Examplecomponents/Example/Example.jsx但每次我得到相同的错误。

0 投票
1 回答
1054 浏览

javascript - Angular 无法识别提供程序内部的函数

首先是我想要实现的一点背景。我有一项服务需要在注入和使用之前进行一些配置。在做了一些研究之后,我认为拥有该服务的提供商将是最好的解决方案。所以我根据这个例子实现了提供者。即使 Typescript 编译器(我正在使用 typescript 将我的代码编译成有效的 JavaScript)认为没问题,JavaScript 也无法识别可通过提供程序设置某些选项的函数。

我的代码如下所示(某些代码因某种原因被遗漏或重命名)

在我的一个单元测试中使用提供程序(我使用 Karma 和 Mocka 进行测试)并调用该setOptions函数时会出现问题。像这样完成的。

运行此测试时,Karma 会抛出错误消息

TypeError:provider.setOptions 不是 Context 中的函数。[匿名]

此外,已编译的 JavaScript Visual Studio 代码在线上的提供程序变量上给了我一个绿色警告(我不认为这是一个错误).provider('CustomService', CustomServiceProvider);

'() => void' 类型的参数不能分配给'IServiceProvider' 类型的参数。类型“() => void”中缺少属性“$get”。
(local var) CustomServiceProvider: () => void
Providers

我已经花了几个小时来解决这个问题,但似乎找不到解决方案。关于如何解决我做错了什么的任何想法?

提前致谢。

编辑 (30-09-2015)

我正在谈论的服务如下所示:

0 投票
0 回答
719 浏览

unit-testing - Karma 可以在不再次运行整个套件的情况下刷新文件更改吗?

我通过 Grunt 使用 Karma。autoWatch = true我们有大约 1000 个测试,每当我们更改文件 ( )时让它们全部运行有点痛苦。

这就是我们现在正在做的事情:

  1. 使用 启动 Karma singleRun=false, autoWatch=false
  2. 打开特定套件的调试页面和 grep(使用 mocha html 报告器)。
  3. 更改与该套件相关的测试或文件。
  4. 刷新调试页面以再次运行测试集。
  5. 我在 (3) 中的更改尚未被 Karma 接收,因此测试仍然表现得好像什么都没有改变。

这就是我需要的:

  1. 使用 启动 Karma singleRun=false, magicOption=true
  2. 打开特定套件的调试页面和 grep(使用 mocha html 报告器)。
  3. 更改与该套件相关的测试或文件。
  4. 刷新调试页面以再次运行测试集。
  5. 我的更改得到了正确的选择,并且只运行了 grepped 测试。

如果我设置autoWatch=true我得到我需要的东西,但是每当我更改文件时,整个 1000 个测试套件都会在后台运行,这很快就会崩溃我的环境。

我不认为有任何相当于magicOption根据 Karma 文档的东西,但是,有没有办法实现相同的行为?

非常感谢。

0 投票
1 回答
3864 浏览

mocha.js - Mocha 接口:未捕获的 ReferenceError:`describe` 未定义

我正在使用 Gulp 使用 mocha/sinon/chai 和 jquery 运行业力

我的 karma.conf.js 有:

并且安装的节点模块是

但是当我运行业力时,我得到了这个错误

我已经尝试在全球范围内安装 karma-mocha 和 mocha。我尝试将 karma-mocha 作为 karma.conf.js 上的插件

0 投票
1 回答
1016 浏览

javascript - 角度测试类型错误

已经在 karma、Mocha chai 和 sinon 中尝试过一个测试用例。

使用该服务后出现错误。这是我的错误。请任何帮助。

这是我的indexcontroller.js

这是我对 indexcontroller 的测试。indeccontroller.test.js

这是我的共同服务

这是我对服务的测试。

0 投票
0 回答
521 浏览

karma-runner - XHR 和访问控制允许来源

我正在测试的一种方法将 XMLHttpRequest 发送到“ http://localhost:4848/qrs/extension/schema?xrfkey=asdfasdfdf ”。我收到一个看起来像这样的错误 -

现在我知道测试是在“localhost:9876”上提供的,尝试访问 localhost:4848 实际上违反了跨域策略。我看过业力代理设置并尝试过-

但这样做实际上从“ http://localhost:9876/qrs/extension/schema?xrfkey=asdfasdfdf ”中提供了我的内容。但是这样我的客户端代码将不起作用。因为客户端代码直接将 XHR 请求发送到“ http://localhost:4848/qrs/ .....”,而不是“ http://localhost:9876/qrs/ .....”。

任何建议我该如何解决这个问题?

另外,在配置文件中设置不同的标题不是更好吗?至少我们知道我们在这里谈论的是测试(我的意思是不在生产中)。

提前致谢。

0 投票
1 回答
453 浏览

angularjs - 如何对 Angular Extend 进行单元测试

我有一个使用角度扩展的控制器。我如何测试角度延伸?

0 投票
0 回答
451 浏览

facebook - 使用 React Js 开发的应用程序的测试框架

我正在研究可用于测试使用 React JS 开发的应用程序的测试框架。到目前为止,我已经阅读了 JEST 和 Mocha JS(与 Chai JS 和 Sinon JS 集成),但我仍然无法缩小可用于开发全自动测试框架的范围,我知道 selenium Web 驱动程序对前端有好处测试,是否有更具体的 ReactJS 应用程序?

0 投票
1 回答
294 浏览

angularjs - AngularJS & mocha:每次测试前调用 $httpBackend

我正在使用 angularjs 并在 mochajs 中编写测试。我在我的应用程序中实现了多语言支持,现在我遇到了问题,在许多测试用例中,我收到了对我的 language.json 的意外请求

您是否知道如何处理此问题,而无需为每个测试添加语言处理的“$httpBackend.whenGet(.....”?

0 投票
0 回答
981 浏览

angularjs - AngularJS 将 $timeout 注入链接?

所以这就是我的问题:

我有一个指令:

我的链接功能如下所示:

和我的控制器(不是很相关):

在我的链接函数中,我有一个(目前)使用 setTimeout 的函数:

我想对这个特定的代码块进行单元测试,但是我的单元测试失败了:

即使在覆盖率报告中,我可以看到单击 triggerHandler 时逻辑确实成功执行。

我认为罪魁祸首是超时。

挖掘 SO 和其他网站,我发现使用 $timeout 效果最好,因为它暴露于“flush()”方法。

我的问题是,我如何“注入” $timeout 到链接函数?

我看到的前面的示例就像将 $timeout 直接注入指令,然后将链接 function() 嵌套在指令声明中:

以上对我不起作用,因为我没有在指令函数中创建函数......所以根据我使用的模型,我如何在链接中使用 $timeout?