草庐IT

javascript - 如何使用 Jest 为带有 Promise 的代码编写单元测试

我正在尝试使用Jest和Jasmine-pit为以下代码编写单元测试,但我完全被它难住了。该代码是一个ajax调用,它从资源中检索一些数据并将其保存在变量中。init=function(){vardeferred=Q.defer();$.ajax({type:'GET',datatype:'json',url:window.location.origin+name,success:function(data){userId=data.userId;apiKey=data.apiKey;deferred.resolve();}});returndeferred.promise;},

Rails 3.1 中的 JavaScript 单元测试

我想知道作为Rails3.1应用程序的一部分进行JavaScript单元测试的最简单方法是什么。我非常喜欢Jasmine,它工作得很好(尽管它需要一些技巧才能获取.coffee文件)。Jasmine的唯一问题是它在一个大页面中运行所有测试示例,这是非常有问题的,因为它需要加载所有脚本。我真正想要的是Jasmine+多个文件中的多个测试套件(以便它生成多个html文件,包括规范文件)。除此之外,我想在浏览器中headless或在JS引擎中(如果可能)运行测试(希望很容易)。有什么建议吗? 最佳答案 Teaspoon几乎可以满足您的需求

javascript - Angular Jasmine UI 路由器将解析值注入(inject)测试

在我的Angular应用程序中,UI路由器将promise解析为Controller。当尝试测试这个Controller时,Karma提示一个未知的vendor。如何将假对象注入(inject)测试以表示此解析对象。我的应用代码如下所示:angular.module('myapp').config(function($stateProvider,$urlRouterProvider){$stateProvider.state('tab.name',{...resolve:{allTemplates:function(Templates){returnTemplates.all().th

javascript - Protractor - 失败 : stale element reference: element is not attached to the page document

我的Protractore2e页面对象中有一个函数可以取消选中下拉菜单中的多个选项。它以前工作正常,但现在我收到以下错误:Failed:staleelementreference:elementisnotattachedtothepagedocument我已经尝试在for循环的每次迭代中获取元素,但是for循环在第一次解决promise之前执行,这意味着x的“限制”值被重复传递,并且测试只是点击多次使用相同的下拉选项。this.uncheckColumns=function(limit){element(by.className('fa-cog')).click();element.a

javascript - 在 Jasmine 测试中更新 React 组件状态

我有一个相对简单的React组件,它根据其状态呈现列表。然后我有一个karma/jasmine测试来渲染组件,设置它的状态,并检查是否渲染了正确的标记。我遇到的问题是,每次我在我的组件上执行setState({})或forceUpdate()时,我都会收到错误消息:TypeError:'undefined'isnotanobject(evaluating'deepestAncestor.firstChild')at/home/company/projects/user_interface_kit/bower_components/react/react.js:10314在React组件

javascript - 使用 Gradle 运行 karma ?

我有Jasmine单元测试,我想运行它并获取Istanbul代码覆盖率报告。我可以运行一个命令行脚本来在Jenkins中运行Karma,但是使用我的build.gradle执行所有内容会很好。是否可以使用Gradle运行Karma?我搜索过谷歌,但似乎找不到解决方案。谢谢 最佳答案 我通过在build.gradle文件中创建并运行一个可执行任务解决了这个问题:taskkarma(type:Exec){commandLine'karma','start','--single-runtrue'}

javascript - 如何断言使用 Jasmine 点击事件调用 spy ?

我正在编写一个简单的点击处理程序并且需要传入事件(就像这样)Thing=function($){varMyObject=function(opts){this.opts=opts;};MyObject.prototype.createSomething=function(){varthat=this;$('#some_dom_element').live('click',function(e){that.doStuff(e);});};MyObject.prototype.doStuff=function(e){//dosomejavascriptstuff...e.preventDe

javascript - Protractor -ScriptTimeoutError : asynchronous script timeout: result was not received in 20 seconds

我是Protractor的新手,我正在尝试运行我的脚本。describe('Navigatorhomepage',function(){it('shouldproceedtologin',function(){browser.get('url');});it('Clickstheproceedbutton',function(){constproceedButton=element(by.id('auth-login-page-button'));proceedButton.click();});});但每当我运行它时,浏览器都会打开并继续访问该网站,然后等待20秒,然后我收到错误:S

javascript - 如何在 Angular 模块运行 block 中测试 Jasmine 代码

我想Jasmine测试Welcome.go是否已被调用。Welcome是一个Angular服务。angular.module('welcome',[]).run(function(Welcome){Welcome.go();});到目前为止,这是我的测试:describe('module:welcome',function(){beforeEach(module('welcome'));varWelcome;beforeEach(inject(function(_Welcome_){Welcome=_Welcome_;spyOn(Welcome,'go');}));it('should

javascript - 未定义|0|引用错误 : Strict mode forbids implicit creation of global property 'csrf_token'

所以,这是我一直遇到的一个非常有趣的问题。我目前正在构建一个backbone.js-Rails应用程序。通常只是为了学习目的而构建它。我(就像任何优秀的Rails开发人员一样)在TDD/BDD方面尽力而为,但我遇到了capybara的问题。我有一个仅测试root_path工作的集成规范(主干历史开始、显示初始信息等...)。require'spec_helper'describe"RentalProperties",js:truedodescribe"GET/"doit"shouldshowalistofproperties"dovisitroot_patheventually{pag