我最近在我的一个javascript函数中添加了一个e.preventDefault(),它破坏了我的jasmine规范。我试过spyOn(e,'preventDefault').andReturn(true);但我得到eisundefined错误。如何stube.preventDefault()?showTopic:function(e){e.preventDefault();midParent.prototype.showTopic.call(this,this.model,popup);this.topic.render();}it("callstheparent",functi
我们正在构建服务器上结合使用Karma和PhantomJS来运行我们的Jasmine单元测试。在Chrome上本地运行测试工作正常,那里没有发生错误(这是一个不同的问题)。这是正在发生的事情:在执行的某一时刻,测试遇到“未定义”错误并简单地停止:PhantomJS1.9.7(MacOSX)ERRORTypeError:'undefined'isnotanobject(evaluating'dropScope.resize')at/Users/nwinkler/workspaces/.../foo.js:250PhantomJS1.9.7(MacOSX):Executed654of122
我正在尝试对$scope.$evalAsync函数进行单元测试。这是我的代码:$scope.$evalAsync(function(done){//enablethepopoverplugindone();jQuery('[data-toggle="popover"]').popover();$scope.isKioskIdLoaded.state=true;});我很难理解如何让evalAsync在我的Jasmine测试中运行。我正在尝试利用Jasmine2.0中的done()函数。 最佳答案 您需要将$scope.$digest
我正在寻找适用于Rails3.1的最简单的Javascript单元测试系统,它特别能够开箱即用地使用Assets管道。我尝试过jasminegem的各种变体,包括jasmine-rice、headless-jasmine-webkit。Jasminegem似乎不能与开箱即用的rails3.1一起使用,需要调整各种配置文件。Jasmine-rice和headless-jasmine-webkit都有复杂的依赖关系,需要对配置文件进行更多调整。有什么建议吗?理想情况下,我需要包含HTML/HAML固定装置,并且是headless的,但在这一点上,我会对任何允许我以最少配置测试我的javas
我有xf数组:varxf=[];我有一个函数是这个数组中的一个元素和一个使用它的函数:$scope.checkEmailValid=function(){varresult=false;Iif(xf.validateEmail($scope.email,'256')){result=true;}returnresult;};xf.validateUsername=function(sText){varisValid=false;do{//Checkforvalidstring.isValid=typeofsText==='string';if(!isValid){break;}//Ch
我网站的不同部分有不同的Javascript文件集,它们-一起扔在一起-相互干扰。为了用Jasmine测试一切,我似乎需要一些方法来为不同的套件定义单独的“Assets”集。这目前是否可能,如果可能,如何实现? 最佳答案 您可能需要按照建议考虑将您的javascript分成不同的命名空间。使将javascript分成多个文件变得容易的一种好方法是使用modulepattern它使用闭包和javascript的一些其他简洁属性来立即执行必要的代码,并将其包含在内。 关于javascript
我正在尝试调试jQuery.post上的spy程序那没有开火,所以作为完整性检查,我试过了spyOn(this.viewModel.requests,'submitRequest').andReturn('fooz');varret=this.viewModel.requests.submitRequest();expect(ret).toEqual('foo');expect(this.viewModel.requests.submitRequest).toHaveBeenCalled();这失败了Expected'fooz'toequal'foo'.但是当我在andReturn的参
我目前正在AngularJS上运行我的测试套件使用Grunt,Karma,Jasmine和Protractor.我使用的数据库库是hood.ie,这是一个位于CouchDB之上的库.我在我的Gruntfile中使用以下代码启动hood.ie:hoodie:{start:{options:{callback:function(config){grunt.config.set('connect.proxies.0.port',config.stack.couch.port);}}}},但是,我想要一个单独的数据库来运行测试,之后会自动重置。这样,生产数据就不会与测试冲突。我应该如何处理这个
在我的代码中,test.js依赖于不使用requireAMD模式的jquery-ui,而test.spec.js依赖于使用AMD模式的jquery-ui、test.js。运行test.spec.js时能否在test.js中动态加载jquery-ui的依赖。require.config({baseUrl:'/demo',paths:{'jquery':'../library/jquery-1.11.1','jquery-ui':'../library/jquery-ui-1.11.4'},shim:{'jquery':{exports:'jQuery'},'jquery-ui':{dep
我有一个非常基本的karma/jasmine设置,其中一个测试套件包含两个测试。我希望第一个测试失败,第二个测试通过。describe("Thesystem",function(){it("shouldfail",function(){expect(true).toBe(false);});it("shouldsucceed",function(done){setTimeout(function(){expect(1).toBe(1);done();},10);});});但是,当我在浏览器中运行这些测试并单击“调试”按钮打开KarmaDEBUGRUNNER时,我看到两个测试都失败了,