草庐IT

javascript - 如何使用 Karma 和 Jasmine 在 Angular 服务中测试 'private' 函数

我的Angular应用程序中有一个看起来像这样的服务:angular.module('BracketService',[]).factory('BracketService',[function(){functioncompareByWeight(a,b){returna.weight-b.weight;}functionfilterWeightGroup(competitors,lowWeight,highWeight){//filterstuff}functioncreateBracketsByWeightGroup(weightGroup){//createsomebracket

javascript - 如何使用 Karma 和 Jasmine 在 Angular 服务中测试 'private' 函数

我的Angular应用程序中有一个看起来像这样的服务:angular.module('BracketService',[]).factory('BracketService',[function(){functioncompareByWeight(a,b){returna.weight-b.weight;}functionfilterWeightGroup(competitors,lowWeight,highWeight){//filterstuff}functioncreateBracketsByWeightGroup(weightGroup){//createsomebracket

javascript - 在 Jasmine 2.0 中测试 AngularJS promise

我一直在努力思考Jasmine2.0和AngularJS的promise。我知道:Jasmine2.0introducedthedonefunction替换旧的runs和waitsFor函数AngularJS$qpromiseswillnotresolveuntiladigestcycleistriggered如何使用Jasmine2.0中的新异步语法测试AngularJSpromises? 最佳答案 在调用promise.resolve()之后:调用$timeout.flush().这将强制执行摘要循环并传播promise解决方案

javascript - 在 Jasmine 2.0 中测试 AngularJS promise

我一直在努力思考Jasmine2.0和AngularJS的promise。我知道:Jasmine2.0introducedthedonefunction替换旧的runs和waitsFor函数AngularJS$qpromiseswillnotresolveuntiladigestcycleistriggered如何使用Jasmine2.0中的新异步语法测试AngularJSpromises? 最佳答案 在调用promise.resolve()之后:调用$timeout.flush().这将强制执行摘要循环并传播promise解决方案

javascript - Jasmine calls.length 和 callCount 未定义

我正在尝试使用Jasmine测试我的chrome扩展程序但我无法让calls.length和callCount按预期运行。两种情况都返回undefined。我已经包含了代码示例和规范。如果有帮助,这是其余代码:https://github.com/DruRly/kamikaze/tree/closeIdleTab如何重现:gitclonehttps://github.com/DruRly/kamikaze/tree/closeIdleTabcd神风敢死队打开SpecRunner.html规范/kamikazeSpec.jsdescribe("kamikaze",function(){d

javascript - Jasmine calls.length 和 callCount 未定义

我正在尝试使用Jasmine测试我的chrome扩展程序但我无法让calls.length和callCount按预期运行。两种情况都返回undefined。我已经包含了代码示例和规范。如果有帮助,这是其余代码:https://github.com/DruRly/kamikaze/tree/closeIdleTab如何重现:gitclonehttps://github.com/DruRly/kamikaze/tree/closeIdleTabcd神风敢死队打开SpecRunner.html规范/kamikazeSpec.jsdescribe("kamikaze",function(){d

javascript - 用 Jasmine 监视 console.error()

我实际上是JavaScript和Jasmine的新手。所以这可能是解决我的问题的非常明显的东西,但我看不到它。我想检查(一个已经存在的)JavaScript应用程序是否在加载时调用console.error()。我真的不知道如何用Jasmine实现这一点。我在SpecRunner.html中包含了JavaScript文件和规范文件。但我认为我需要以某种方式“实例化”应用程序以测试它是否会在控制台上抛出任何错误,对吧?或者我是否应该将仅用于此目的的SpecRunner.html代码包含到应用程序的HTML代码中? 最佳答案 你可以像这

javascript - 用 Jasmine 监视 console.error()

我实际上是JavaScript和Jasmine的新手。所以这可能是解决我的问题的非常明显的东西,但我看不到它。我想检查(一个已经存在的)JavaScript应用程序是否在加载时调用console.error()。我真的不知道如何用Jasmine实现这一点。我在SpecRunner.html中包含了JavaScript文件和规范文件。但我认为我需要以某种方式“实例化”应用程序以测试它是否会在控制台上抛出任何错误,对吧?或者我是否应该将仅用于此目的的SpecRunner.html代码包含到应用程序的HTML代码中? 最佳答案 你可以像这

javascript - Karma 测试运行器中的全局变量

我在我的主模板中定义了一个全局变量,我用它来存储来自后端的信息位,例如环境上下文路径。我无法在服务中移动该变量。我如何在运行单元测试时将该变量公开给Karma? 最佳答案 您可以在测试文件中声明该全局变量:varglobal="something";describe('Yourtestsuit',function(){...});或在您的karma.conf.js文件中定义它的地方添加一个Javascript文件://listoffiles/patternstoloadinthebrowserfiles:[...,'file-con

javascript - Karma 测试运行器中的全局变量

我在我的主模板中定义了一个全局变量,我用它来存储来自后端的信息位,例如环境上下文路径。我无法在服务中移动该变量。我如何在运行单元测试时将该变量公开给Karma? 最佳答案 您可以在测试文件中声明该全局变量:varglobal="something";describe('Yourtestsuit',function(){...});或在您的karma.conf.js文件中定义它的地方添加一个Javascript文件://listoffiles/patternstoloadinthebrowserfiles:[...,'file-con