问题标签 [ngmock]

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 投票
0 回答
95 浏览

javascript - $httpBackend 未注入

我有以下问题(使用模拟测试):

在此处输入图像描述

我在角度迁移到 v 1.6 后得到它。看起来 $httpBackend 没有注入。

我不知道为什么不注入此提供程序。

我的注射块:

在此处输入图像描述

谢谢你的任何想法。

0 投票
0 回答
313 浏览

angularjs - 使用 ngMock 进行角度单元测试 - $timeout.flush() 抛出异常

我正在使用 ngMock 进行单元测试,我需要在其中一个测试中使用 $timeout.flush 函数,因此我在测试中添加了以下两行:

http://www.bradoncode.com/blog/2015/06/11/unit-testing-code-that-uses-timeout-angularjs/所示。

$timeout.flush() 确实按预期刷新超时,但是我现在每次运行测试时都会从 angular-mocks.js 中得到一个异常:

日志:'异常:',错误{行:1441,sourceURL:' http://localhost:9876/base/node_modules/angular-mocks/angular-mocks.js?05a191adf8b7e3cfae1806d65efdbdb00a1742dd ',堆栈:'$httpBackend@ http:// /localhost:9876/base/node_modules/angular-mocks/angular-mocks.js?05a191adf8b7e3cfae1806d65efdbdb00a1742dd:1441:90 ....
全局代码@ http://localhost:9876/context.html:336:28 '}, '原因:',未定义

有谁知道这个异常可能来自哪里?我得到它的次数与使用 $timeout.flush() 函数的次数一样多。

查看 angular-mocks.js 文件,它看起来像是来自 $httpBackend 函数。我试图更新 ngMock 版本,但它没有改变任何东西。我已经尝试了 1.4.7 版(这是我的 Angular 版本)和 1.6.2 版。

}

0 投票
1 回答
599 浏览

angularjs - 带有角度 ng-mock 的茉莉花测试不适用于控制器和承诺

我一直在使用以下代码,但找不到问题,测试失败并显示以下消息:“预期未定义未定义。”

我有一个服务,它向我的控制器返回一个承诺。在控制器中,我在得到承诺后立即使用 $q.all 做一些事情。

我尝试按照这个示例进行操作,但我看到的最大区别是,在示例中它在控制器的根目录中有调用,并且我在方法“$scope.CustomerTest”中有服务调用,所以我有这个附加行到应用之前( $scope.$apply() )“$scope.CustomerTest('Mr');”:

http://www.bradoncode.com/blog/2015/07/13/unit-test-promises-angualrjs-q/

这是我的测试代码:

这是plunker:

评论 controller.spec.js 的第一个测试(它),其他两个测试有效。请问有什么帮助吗?

0 投票
1 回答
541 浏览

angularjs - Angular 测试无法使用 Jasmine 和 Karma 实例化模块

我已经用 Angular 1.6.6、ng-mock 1.6.6、Jasmine 和 Karma 建立了一个测试环境。但即使是最简单的测试,我在尝试注入 deloreanApp 模块时也会得到 [$injector:modulerr]

由于以下原因无法实例化模块 deloreanApp:错误:[$injector:nomod]

理论上不存在错误,Angular 和 ng-mock 版本匹配。

我的文件是:

应用程序.js

控制器.js

DeloreanController.test.js

我的karma.conf.js文件的一部分:

0 投票
1 回答
475 浏览

angularjs - 单元测试角度 $http 服务时出现意外的请求错误

我在我的 angularJS 应用程序中使用单元测试。这是我对服务的测试规范:

而且,这是getTest我的服务中的功能:

为什么我会收到以下错误:

错误:意外请求:GET api/Account/GetTest

我还想如果我从规范中的 url 中删除斜杠,错误会变成这样(我不知道为什么):

错误:意外请求:GET /app/views/login.html

0 投票
1 回答
26 浏览

javascript - 您如何使用 $provide 和 $q 对工厂进行单元测试

我正在尝试为依赖于另一个返回承诺的工厂函数的服务编写单元测试。我已经按照这个问题答案中看到的过程进行了操作,但是由于某种原因,我试图验证的 then() 中的代码没有被调用。我怎样才能让它工作?如果可能,我想使用不执行 spyOn 的版本(答案中的更新部分)。

0 投票
1 回答
24 浏览

angularjs - AngularJS - 如何模拟模板的控制器?

我有一个要测试的行为模板,但它使用我想避免的代码调用控制器,我宁愿为它注入一个模拟。我怎么做?

我正在使用 Angular 1.7、Karma 和 Jasmine。

模板:

控制器:

0 投票
1 回答
14 浏览

angularjs - 如何从规范文件中引用单个 HTML 文件中定义的 AngularJS 模块

AngularJS在单个HTML文件中定义了一个模块。不幸的是,我无法将其重构为单独的文件。

我需要使用 and 添加单元测试angular-mocksjasmine并且我需要使用 Node.JS(即npm jasmine)运行单元测试。我想离开karma图片。

我查看了该angular-seed项目,但所有控制器和视图都很好地分开,这不是我的情况。

如何从我的文件AngularJS中引用我的单个HTML文件中的模块spec

0 投票
1 回答
2243 浏览

angular - 带旁观者的模拟 Angular 路由器

我正在使用Spectator编写我的 Angular 8 测试并使用Jest来运行它们。我是前端单元测试的新手,所以我可能忽略了一些简单的事情;欢迎任何想法。

我有以下方法(在 Typescript 中),它根据当前 URL 是否与一组路径匹配(不包括 queryParams 和片段)返回一个布尔值:

我现在想用 Spectator 编写测试,它将根据几个可能的 url 验证布尔返回值。在Java中,我会Router用一个模拟对象来模拟并执行以下操作:

我如何创建一个模拟Router?以及如何定义返回值this.router.parseUrl(this.router.url).root.children['primary']

这是我目前拥有的:

我知道它createRoutingFactory提供了ActivatedRouteStub开箱即用的东西,但我无法用它做任何有意义的事情。

PS:我将业力添加为标签,因为它可能具有相同的解决方案,但如果我错了,请纠正我。

0 投票
1 回答
330 浏览

angular - 带有旁观者日志的角度组件测试“无法绑定到输入”警告模拟子组件

我在使用 @ngneat/spectator 在 Angular 9 组件测试中模拟子组件时遇到问题。模拟的模拟和传递工作正常,但它会在输入的日志中引发警告(即使它们是有效的)。

简化的组件如下所示:

现在观众测试

测试运行良好并通过。但是,日志会打印警告:

任何想法为什么它会记录警告?