问题标签 [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.
angularjs - Angular mock $httpBackend 给出没有挂起的刷新请求
按照angularJS $httpBackend的官方指南,我会做这个测试,但是 Karma 给了我这个错误:
Error: No pending request to flush !
at Function.$httpBackend.flush
测试
});
对于这个简单的控制器:
});
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 不再搜索提供者,因为您已经注入了应该需要这些提供者的项目。它有效,但我相信它可以以更好的方式完成......
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 提供的内容
angularjs - 控制器angularjs的单元测试
我有这个简单的控制器,UserService 是一个返回 JSON 的服务
我无法进行测试。然而这是我的尝试
javascript - 带工厂的角度测试控制器
你好我有这个处理登录的控制器:
这是我的 LoginFactory 登录功能:
这是我的 beforeEach:
这是我的测试:
我得到的错误是:
错误:[$injector:unpr] 未知提供者:$provideProvider < $provide
我不确定这是否是测试这个的正确方法,任何建议都会很好。
谢谢你。
gruntjs - 没有“框架:茉莉花”的提供者!(解决:框架:茉莉)
当我运行命令时,grunt
我收到以下警告:
有谁知道如何解决这个问题?
angularjs - AngularJS Jasmine 测试获取请求
我有一个工厂来执行一个获取请求,我想测试一下。不幸的是,业力测试告诉我 $httpBackend 没有定义响应。
AngularJs 1.2.14、Jasmine 2.0、Karma 0.12.0
这是我要测试的模块:
我的测试是这样的:
信息:
angularjs - Angular JS - 使用 Karma / Jasmine 测试具有页面重定向的功能
我的 Angular 控制器中有一个函数,如下所示:
一个简单的 Jasmine 测试涵盖了上述功能,如下所示:
上述测试本身通过,但随后 Karma 在控制台中抛出以下错误:
你的一些测试做了一个完整的页面重新加载!
页面重定向导致 Karma 发出此警告。解决这个问题的最佳方法是什么?
我考虑在 Jasmine 测试中同时给出匿名函数和 Angular 名称,然后在原始函数中使用arguments.callee.caller.name来确定该函数是由自身调用还是被 Jasmine 调用。不幸的是,arguments.callee.caller.name总是返回 undefined,我怀疑这是由 Angular 和 Jasmine 相互链接的方式引起的。
angularjs - Angular测试错误的url以调用错误回调并对其进行测试
我想测试一个 HTTP 发布错误回调。事实上我有这个代码:
我使用 httpbackend 来测试成功回调,如下所示:
使用良好的 url 和数据,但我想测试错误的 URL,因此将执行回调错误。不幸的是,当我使用错误的 URL 时,测试失败并且不会调用回调 URL。
你能帮我测试一个错误的 URL 吗?
angularjs - Karma 在浏览器中展示 Jasmine 测试的 AngularJs 代码
我有一个工作业力设置,它在控制台中显示我的茉莉花测试的测试结果。如果我启动 Jasmine SpecRunner.html 我会收到错误“模块未定义”因此我在 SpecRunner-Header 中添加了 angular-mock:
这是我的 karma.config:
有没有办法让 karma 用 jasmines specrunner 显示测试?