问题标签 [karma-jasmine]

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 投票
5 回答
26864 浏览

angularjs - Angular mock $httpBackend 给出没有挂起的刷新请求

按照angularJS $httpBackend的官方指南,我会做这个测试,但是 Karma 给了我这个错误Error: No pending request to flush ! at Function.$httpBackend.flush

测试

});

对于这个简单的控制器

});

0 投票
3 回答
27745 浏览

angularjs - 使用 Karma / Jasmine 对 modalInstance 控制器进行单元测试

编辑:这篇文章末尾的快速和肮脏的解决方案

我正在使用来自 AngularUI-Bootstrap 的模态窗口,其方式与网站上的解释方式相同,只是我拆分了文件。因此我有:

调用控制器.js:

模态控制器.js:

当我使用 Karma 测试此代码(在 karma 配置文件中加载ui-bootstrap-tpls.min.js文件)时,我收到以下错误: 错误:[$injector:unpr] [ http://errors. angularjs.org/1.2.15-build.2389+sha.c5f2f58/$injector/unpr?p0=%24modalInstanceProvider%20%3C-%20%24modalInstance ] 1在 Error (native),这意味着茉莉花没有设法找到 $modalInstance 的提供者。

我什至没有在这个控制器上测试东西,还没有,但这是我的 jasmine 测试文件:

testModalController.js:

你对这个问题有任何线索吗?这不是我使用(和测试)的第一个“外部”模块,我做了与其他模块相同的事情,只是这次它不起作用,我不知道为什么。

===========================================

编辑:快速且可能很脏的解决方案:

好的,所以基于 Jasmine 控制器实例化中的作用域模拟方法,我想出了如何“解决”我的问题,但它可能很脏,所以如果你找到更好的方法来做我想做的事,请随时发表评论.

testModalController.js:

这样,Jasmine 不再搜索提供者,因为您已经注入了应该需要这些提供者的项目。它有效,但我相信它可以以更好的方式完成......

0 投票
2 回答
2532 浏览

javascript - RequireJS 找不到 Karma 的依赖项

这是我的目录层次结构:

  • 应用程序
    • 后端/
    • 前端/
      • 控制器/
      • ...
    • 测试/
      • 控制器/
      • ...
      • 测试主cfg.js
    • 小贩/
      • 角/角.min.js
      • 下划线/下划线.js
      • ...
    • 业力.conf.js

这是 karma.conf.js 的内容:

下面是test/test-main-cfg.js,requires的配置文件和karma的起点:

我的规范文件之一是:

我无法在规范文件中加载任何依赖项。非常感谢您的回答。

编辑:

karma.conf.js中的main.spec.js 可以使用 url 找到http://localhost:9876/base/test/main.spec.js,但是我有一个名为another.spec.js的文件,它与前一个文件在同一目录下,无法通过 url 找到http://localhost:9876/base/test/another.spec.js

添加了@glepretre 提供的内容

0 投票
1 回答
526 浏览

angularjs - 控制器angularjs的单元测试

我有这个简单的控制器,UserService 是一个返回 JSON 的服务

我无法进行测试。然而这是我的尝试

0 投票
1 回答
1520 浏览

javascript - 带工厂的角度测试控制器

你好我有这个处理登录的控制器:

这是我的 LoginFactory 登录功能:

这是我的 beforeEach:

这是我的测试:

我得到的错误是:

错误:[$injector:unpr] 未知提供者:$provideProvider < $provide

我不确定这是否是测试这个的正确方法,任何建议都会很好。

谢谢你。

0 投票
6 回答
43866 浏览

gruntjs - 没有“框架:茉莉花”的提供者!(解决:框架:茉莉)

当我运行命令时,grunt我收到以下警告:

有谁知道如何解决这个问题?

0 投票
2 回答
8225 浏览

angularjs - AngularJS Jasmine 测试获取请求

我有一个工厂来执行一个获取请求,我想测试一下。不幸的是,业力测试告诉我 $httpBackend 没有定义响应。

AngularJs 1.2.14、Jasmine 2.0、Karma 0.12.0

这是我要测试的模块:

我的测试是这样的:

信息:

0 投票
2 回答
12063 浏览

angularjs - Angular JS - 使用 Karma / Jasmine 测试具有页面重定向的功能

我的 Angular 控制器中有一个函数,如下所示:

一个简单的 Jasmine 测试涵盖了上述功能,如下所示:

上述测试本身通过,但随后 Karma 在控制台中抛出以下错误:

你的一些测试做了一个完整的页面重新加载!

页面重定向导致 Karma 发出此警告。解决这个问题的最佳方法是什么?

我考虑在 Jasmine 测试中同时给出匿名函数和 Angular 名称,然后在原始函数中使用arguments.callee.caller.name来确定该函数是由自身调用还是被 Jasmine 调用。不幸的是,arguments.callee.caller.name总是返回 undefined,我怀疑这是由 Angular 和 Jasmine 相互链接的方式引起的。

0 投票
0 回答
286 浏览

angularjs - Angular测试错误的url以调用错误回调并对其进行测试

我想测试一个 HTTP 发布错误回调。事实上我有这个代码:

我使用 httpbackend 来测试成功回调,如下所示:

使用良好的 url 和数据,但我想测试错误的 URL,因此将执行回调错误。不幸的是,当我使用错误的 URL 时,测试失败并且不会调用回调 URL。

你能帮我测试一个错误的 URL 吗?

0 投票
1 回答
447 浏览

angularjs - Karma 在浏览器中展示 Jasmine 测试的 AngularJs 代码

我有一个工作业力设置,它在控制台中显示我的茉莉花测试的测试结果。如果我启动 Jasmine SpecRunner.html 我会收到错误“模块未定义”因此我在 SpecRunner-Header 中添加了 angular-mock:

这是我的 karma.config:

有没有办法让 karma 用 jasmines specrunner 显示测试?