问题标签 [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.
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 版。
}
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 的第一个测试(它),其他两个测试有效。请问有什么帮助吗?
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文件的一部分:
angularjs - 单元测试角度 $http 服务时出现意外的请求错误
我在我的 angularJS 应用程序中使用单元测试。这是我对服务的测试规范:
而且,这是getTest
我的服务中的功能:
为什么我会收到以下错误:
错误:意外请求:GET api/Account/GetTest
我还想如果我从规范中的 url 中删除斜杠,错误会变成这样(我不知道为什么):
错误:意外请求:GET /app/views/login.html
angularjs - AngularJS - 如何模拟模板的控制器?
我有一个要测试的行为模板,但它使用我想避免的代码调用控制器,我宁愿为它注入一个模拟。我怎么做?
我正在使用 Angular 1.7、Karma 和 Jasmine。
模板:
控制器:
angularjs - 如何从规范文件中引用单个 HTML 文件中定义的 AngularJS 模块
我AngularJS
在单个HTML
文件中定义了一个模块。不幸的是,我无法将其重构为单独的文件。
我需要使用 and 添加单元测试angular-mocks
,jasmine
并且我需要使用 Node.JS(即npm jasmine
)运行单元测试。我想离开karma
图片。
我查看了该angular-seed
项目,但所有控制器和视图都很好地分开,这不是我的情况。
如何从我的文件AngularJS
中引用我的单个HTML
文件中的模块spec
?
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:我将业力添加为标签,因为它可能具有相同的解决方案,但如果我错了,请纠正我。
angular - 带有旁观者日志的角度组件测试“无法绑定到输入”警告模拟子组件
我在使用 @ngneat/spectator 在 Angular 9 组件测试中模拟子组件时遇到问题。模拟的模拟和传递工作正常,但它会在输入的日志中引发警告(即使它们是有效的)。
简化的组件如下所示:
现在观众测试
测试运行良好并通过。但是,日志会打印警告:
任何想法为什么它会记录警告?