草庐IT

jest-jasmine

全部标签

javascript - 是否可以在一个函数中定义一个 Jasmine 规范并且仍然有 beforeEach 应用于它?

我有很多几乎相同的测试。为了DRY和可扫描性,我想将测试抽象为一个函数,然后使用一些参数调用该函数。然后该函数将调用它并将规范添加到套件中。它似乎可以工作,除了规范不会以与其他规范相同的方式运行,并且beforeEach不会在公共(public)函数中定义的规范之前被调用。define(['modules/MyModule','jasmine/jasmine'],function(MyModule){describe('myModule',function(){functioncommonTests(params){it('shouldpassthistestOK',function(

javascript - 让 Jasmine 在服务器端运行

我正在尝试开始使用Node.JS在服务器端测试JavaScript我正在使用grunt,和grunt-jasmine-node,但我无法让它运行我的测试。它只是记录PSC:\Development\NET\Source\jsn>gruntRunning"jasmine_node"taskundefinedFinishedin0.001seconds0tests,0assertions,0failuresDone,withouterrors.这是我的Gruntfile.jsmodule.exports=function(grunt){grunt.initConfig({pkg:grunt

javascript - jquery-jasmine - 夹具无法加载

我正在尝试加载一些固定装置以进行测试。至此我已经准备好了一个json文件。我确实设置了应该加载特定文件的beforeEach函数,但出现错误:Error:Fixturecouldnotbeloaded:tests/license_filter/license_test_data.json(status:error,message:undefined)部分测试函数:beforeEach(function(){jasmine.getFixtures().fixturesPath='tests/license_filter';loadFixtures('license_test_data.j

javascript - Jasmine Controller 测试,预计 spy 已被调用

我在AngularJSController中定义了一个方法,该方法在初始化时调用。我想使用Jasmine("jasmine-core":"^2.3.4","karma":"^0.12.37")测试它。我遵循了Internet上的一些教程和StackOverflow问题,但找不到正确的答案。请看一下这段代码:ControllerusersAddUserController:(function(){'usestrict';angular.module('app.users.addUser').controller('usersAddUserController',['$scope','us

javascript - AngularJs Jasmine 单元测试中的 $httpBackend

我无法让我的单元测试正常工作。我有一个开始为空的$scope数组,但应该用$http.get()填充。在真实环境中,数组中大约有15个左右的对象,但对于我的单元测试,我只抓取了2个。对于单元测试,我有:expect($scope.stuff.length).toBe(2);但jasmine的错误是:Expected0tobe2.这是我的controller.js:$scope.stuff=[];$scope.getStuff=function(){varurl=site.root+'api/stuff';$http.get(url).success(function(data){$sc

javascript - AngularJS Jasmine isolateScope() 返回未定义

我希望从我的help-button指令中的隔离范围中得到一些东西。it('shouldcontainproperscope,dependingonattributes',function(){varel=compile('')(scope);scope.$digest();console.log("el:"+el);console.log('Isolatedscope:'+el.isolateScope());..});--在每次测试之前beforeEach(inject(function($compile,$rootScope,$injector){compile=$compile;

javascript - 具有多个返回值的 Jasmine spyOn

我想用Jasmine测试我的Angular应用程序。所以我创建了一些测试,其中大部分都运行良好。但是,我的功能之一要求用户填写提示。测试无法填充此提示,所以我用spyOn(window,'prompt').and.returnValue('test')模拟了它们。这有效,但只有一次。当我添加两个组件(提示所在的函数)时,我想spyOn第一个提示结果为“test”,第二个提示结果为“test2”。我试过这样做:it'shouldplacethecomponentaslastobjectintheform',->spyOn(window,'prompt').and.returnValue(

javascript - Jasmine + JSTestDriver + 覆盖率 + RequireJS

哇,好乱啊。这是场景。主干驱动的JS应用。用于AMD功能的RequireJS,初始化如下:然后在main.js中添加以下配置代码:require.config({paths:{...:...}});每个BackboneView/Model/Router都是一个“define(...)”模块,在main.js中调用一次“require("theOneRouter",...)”。r.js用作Uglify/Closure的优化器。在我的.net框架中动态选择的./release子文件夹中创建了一个“已编译”的main.js。花了很长时间才让Backbone+Require.JS工作,但现在工

javascript - 如何为包含 HTML 和 JavaScript 或 jQuery 的网页编写 Jasmine 测试?

我在Jasmine上阅读的资料中,他们只测试了一个.js文件。但是,如果测试是在网页上进行的,比如说,使用代码:try.html:$("#the-input").focus(function(){$(this).css("background","#ff9");});$("#the-input").blur(function(){$(this).css("background","#cff");});就是说,如果用户点击(或tab)输入框,将输入框的背景设置为黄色,当焦点移出时,将其设置为浅蓝色。在这种情况下,我们如何在.html文件中测试上述行为?(这个html文件应该在哪里——它可

javascript - 使用 Jasmine 测试 Angular2/TypeScript 管道

我有一个带有TypeScript应用程序设置的Angular2,带有非常基本的Jasmine测试。我想测试我的一根pipe。lpad.pipe.tsimport{Pipe,PipeTransform}from'@angular/core';@Pipe({name:'lpad'})exportclassLPadPipeimplementsPipeTransform{transform(value:any,args:string[]):any{letpad=args[0];return(pad+value).slice(-pad.length);}}在html模板中的用法:{{size.S