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

javascript - Karma js 不会提供图片文件

Karma js 似乎无法为我的项目中的任何图像提供服务。我当前的业力配置如下所示:

我总是收到这个错误:

如果我使用此设置运行它:

我收到此错误:

我已经研究了几个小时了,似乎找不到让这件事开心的组合。我不明白我做错了什么我查看了我能找到的所有业力 js 示例,但似乎没有任何效果。

0 投票
2 回答
2166 浏览

javascript - 监视点击事件调用的函数

我究竟做错了什么?试图监视在元素单击事件上调用的函数,但测试总是返回 false。

规格:

js:

0 投票
2 回答
233 浏览

angularjs - 使用 karma 和 mocha 进行测试时未找到 Angular 的 $interval 服务

我创建了一个服务,它具有 $interval 作为依赖项并使用它并且似乎可以工作。不幸的是,当我尝试对应用程序进行单元测试时,角度找不到 $interval 服务:

我没有像往常一样在控制器内部调用服务,而是在应用程序的 run() 方法上调用该服务:

它有效,但如果我尝试测试应用程序崩溃。其余的角度服务似乎没有这个问题($window、$location、$rootScope、...),如果我将我的服务附加到控制器而不是在 app.run() 调用它,即使相同的服务也可以工作:

我用 Karma+Mocha+Sinon+Chai 来测试。

更新 示例与尝试在 app.run() 中使用 $interval 的迷你应用程序:

考试:

注意:如果您从 app.run() 中删除 $interval,它会起作用。相反,$timeout、$window 或 $location 等其他角度服务似乎并不麻烦。

另外,我注意到像 $resource 这样的其他服务也有这个问题。

我认为其中一些服务在准备好之前需要其他东西,这就是为什么我不能在 app.run() 调用它们的原因?

谢谢你的帮助。

0 投票
1 回答
95 浏览

javascript - 测试 angularjs 的异步 $http 真实调用

我想对 angularjs 服务进行 e2e 测试,而不模拟 $http 调用。对 fsSvc.getSubject 的调用导致多个嵌入式异步调用,最终以调用回调函数结束,我已将调用完成。

不确定这是否行不通 - 如果 $http 没有被嘲笑,不应该真正调用它吗?:

0 投票
1 回答
487 浏览

javascript - Karma (mocha) - 单元测试失败时出现意外的令牌 N

我正在使用 Karma + Mocha 来运行我的单元测试,除了测试失败之外,一切都运行良好,当我运行类似的测试时

它失败了,我希望它会说“期望对象,但给出了字符串”或类似的东西,相反,我得到的只是(对于每一个失败的测试,无论它如何失败,即使我尝试用 false 资产 true ):

我知道我的代码中没有语法错误,所以我猜这与 karma/mocha 以及他们处理失败测试的方式有关。我只是不知道在哪里看。这是我的 gulp 任务:

这是我的 karma.conf 文件:

任何帮助将非常感激!!!谢谢!

0 投票
0 回答
156 浏览

angularjs - 在 Karma 测试中模拟依赖项的依赖关系

-我见过很多关于测试和 DI 的问题,但到目前为止没有一个对我有帮助。

我有一个模块:

和一个我想测试的功能的简单服务:

和一个测试文件:

现在,服务FooService本身依赖于BarService. 当我在业力中运行它时,我收到一个错误:

这让我很困惑:因为我使用angular.mock.module('app.foo'),我本来预计 的依赖关系fooService甚至不会出现在雷达上。显然他们是,所以我认为我做错了什么。

我应该如何处理我的服务的依赖关系?我应该存根FooService吗?

0 投票
1 回答
205 浏览

unit-testing - 如何向 karma-mocha 添加参数?

我已经为 TypeScript 项目设置了单元测试。从命令行可以正常工作:

现在,我已将 mocha 和 chai 添加到我的 karma 文件中,如下所示:

如何使用此部分的文件将参数包含在compilers ts:typescript-requiremocha 中:karma.conf.js

一个例子将不胜感激!

0 投票
2 回答
390 浏览

javascript - 如何测试在其构造函数中对集合调用 fetch 的视图?

我有一个 BackboneView,我在创建时传递了一个集合

在视图内部,在构造函数中的集合上调用 fetch() 方法,如下所示

我有(过去时)一系列测试,像这样测试视图的 UI/模板

但是,由于我现在添加了将集合传递给视图的代码,并在构造函数中调用了集合的 fetch 方法,所以我的所有测试都失败了,因为每次运行测试时视图都会尝试调用 fetch 方法。即使我传递了存根集合,我也必须设置 aurl并且视图将尝试获取存根集合,从而导致 404

我需要在视图中的集合上调用 fetch(即我不能不使用该代码)。在这种情况下如何继续测试视图?

0 投票
1 回答
371 浏览

javascript - Angular Controller Mock 在我的 Mocha 测试中没有持续存在

当前运行 Angular 1.2.x 与 karma-mocha 0.2.0 和 karma-chai 0.1.0。

以下是我尝试为我编写一些MentorAvailabilityDashboardCtrl基于Mentors模块的简单单元测试。单独运行时一切都通过了,但是当我按原样运行测试时,我收到一条错误消息,指出“错误:[ng:areq] Argument 'MentorAvailabilityDashboardCtrl' 不是函数,未定义”

这让我觉得 Mocha 或 AngularMock 在测试运行一次后被重置,并且在之后是未定义的。

例子:

一次测试全部运行

  • 第一次测试 = 通过
  • 第二次测试 = 失败“MentorAvailabilityDashboardCtrl 未定义”
  • 第三次测试 = 失败“MentorAvailabilityDashboardCtrl 未定义”
  • 第 4 次测试 = 失败“MentorAvailabilityDashboardCtrl 未定义”

测试同时运行(注释掉其他测试)

  • 第一次测试 = 通过
  • 第二次测试 = 通过
  • 第三次测试 = 通过
  • 第四次测试 = 通过

问题:

为什么我的控制器在第一次测试运行后未定义,我能做些什么让它在每次测试运行时都保持不变?

我的代码:

实际错误:

0 投票
1 回答
2372 浏览

javascript - Mocha & Chai-“超过 2000 毫秒的超时。确保在此测试中调用了 done() 回调。”

我收到“超过 2000 毫秒的超时。确保在此测试中调用了 done() 回调。” 在对一个返回承诺的服务调用进行单元测试时。我期待一个被拒绝的承诺。

单元测试- 在 PhantomJS 上运行的 Karma-Mocha-Chai

以下是我正在测试的服务。我在运行站点时测试了 teamService,它确实成功地返回了一个被拒绝的承诺。

我已经阅读了其他堆栈溢出答案,但没有成功。

有任何想法吗?

我很感激帮助。

谢谢,