草庐IT

javascript - 在 PhantomJS 中模拟时区以进行 Jasmine 测试

是否可以在Jasmine中模拟时区来测试日期对象?我有一个函数,它接受UTC时间字符串并将其转换为日期对象。使用“2016-01-16T07:29:59+0000”,我希望能够验证当我们处于太平洋标准时间时我们正在观察2016-01-1523:29:59作为本地日期/时间我希望能够将此时区切换回GMT,然后确保我们将2016-01-1607:29:59视为本地日期/时间(如何)这可能吗?(我正在使用phantomjs通过Grunt运行我的Jasmine规范)我的函数供引用:utcDateStringToDateObject:function(dateString){returndate

javascript - 你如何使用 jasmine + TypeScript 测试一个用常量调用的函数

我正在开发Angular2/TypeScript项目并使用jasmine进行单元测试。如何使用jasmine.js测试用常量调用的函数。例如。Logo.tsexportconstRADIUS:number=10;exportclassLogo{...protecteddrawCircle(x:number,y:number,r:number){...}protecteddrawLogo(){this.drawCircle(RADIUS,RADIUS,RADIUS);}...}Logo.spec.tsdescribe('drawLogo',function(){beforeEach(()

javascript - 如何在 Jasmine.js 中使用带有 toHaveBeenCalledWith 的 spy 和可变数组?

我有一些代码以数组作为单个参数调用回调函数。调用回调后,代码更改数组内容。它类似于这段代码:functionmyCode(callback){varsomeArray=[1,2,3,4];callback(someArray);//changesomeArrayinarbitrarywayssomeArray.splice(2);...}现在,我想验证是否使用正确的数组内容调用回调。使用Jasmine.js我会这样写我的规范:describe("Mycode",function(){varcallback;beforeEach(function(){callback=jasmine.c

javascript - 您如何在浏览器中模拟文件选择器以进行单元测试?

我对如何在浏览器中全局模拟文件选择器感兴趣。具体来说,我最感兴趣的是在Firefox中执行此操作,但更喜欢通用解决方案。我只关心防止文件选择器对话框出现。我不需要能够断言它确实打开了。问题是我对打开文件选择器的JavaScript代码进行了单元测试。当对话框打开时,它停止执行测试套件。一个示例情况是我正在测试Backbone.View的onRender方法。该方法呈现一个subview,它将在呈现时打开文件选择器。由于我没有直接测试该subview,所以当我只对onRender方法的其他部分进行单元测试时,我宁愿不模拟它的部分行为。例子://Testfileit("shoulddoso

javascript - 如何在 Jasmine 测试框架中处理谷歌地图事件

我正在尝试使用jasmine框架为Googlemap编写Javascript测试。我想要做的是启动map并更改边界(缩小)并测试map是否已正确缩小。我遇到的问题是jasmine好像没有办法处理事件。Jasmine有一个spyOn()方法,可以查找方法(不是事件)的用法。jasmine中还有waits()方法可以等待特定的时间。这些方法都不适用于处理事件。有人对Jasmine的事件有任何经验吗?我正在使用的代码:describe('Mapview',function(){beforeEach(function(){$('body').append("");this.view=newMa

javascript - Jasmine spyOn mongoose 保存

我想模拟Mongoose模型的save()函数。我要测试的函数在名为user.js的文件中如下所示:varUser=import('User.js')post:function(req,res){varuser=newUser({password:req.body.password,email:req.body.email,});user.save(function(err){if(err){....}else{....}});我试图在另一个名为user_spec.js的文件中编写如下所示的测试:varHander=require('user.js')it('worksproperly

javascript - 使用 Jest CLI 时如何让 Promises 工作?

我正在尝试使用JestCLI测试一个promise,这段代码在浏览器中运行时会正常执行。但是我想开始为它编写测试。classListCollection{constructor(){this.items=newArray();}addItem(string){constaddItemPromise=newPromise(function(resolve,reject){//setupasyncgettinglikeaXMLHttpRequestsetTimeout(()=>{this.items.push(string);resolve(string);}.bind(this),200

javascript - 测试 Angular $emit 和 $on 事件

我正在尝试为Controller中的事件编写单元测试。下面是我的ControllermyApp.controller('ParentCtrl',['$scope',function($scope){$scope.message="Sometextinparent";$scope.$on("update_parent_controller",function(event,message){$scope.message=message;});}]).controller('ChildCtrl',['$scope',function($scope){$scope.clickFunction=

javascript - 使用 Jasmine 测试以 uibModal 和 lodash 作为依赖项的服务

这是我第一次使用Jasmine,我已经测试了我的第一个工厂没有问题。但是现在,我想测试这个服务:angular.module('Questions',[]).service('QuestionsService',function($uibModal,$log,_){...}$uibModal来自UIBootstrap(参见here),_是Lodash。到目前为止,我的Jasmine测试是:describe('Service:QuestionsService',function(){varQuestionsService;beforeEach(inject(function(_Quest

javascript - Angular Directive(指令) : It's possible testing that certain characters are rejected in a keypress event?

我一直在构建一个指令来限制用户按下某些无效字符,在这种情况下,使用keypress事件绑定(bind)到使用我的指令的输入元素。我一直在尝试测试此功能,但我不明白如何实现。我的指令angular.module('gp.rutValidator').directive('gpRutValidator',directive);directive.$inject=['$filter'];functiondirective($filter){varddo={restrict:'A',require:'ngModel',link:linkFn};returnddo;functionlinkFn(