草庐IT

javascript - Rails + Jasmine-Ajax : what is the correct way to test code triggered by `ajax:success` (jquery-ujs)

我正在尝试测试某个内部库,该库在ajax:success事件上触发了一些JS行为。库创建一个如下所示的链接:在库的JS部分有事件绑定(bind)代码,这是我想通过它对DOM的影响进行黑盒测试的部分:$(document).on'ajax:success','.special-link',(e,data,status,xhr)->#CodethathassomeeffectontheDOMasafunctionoftheserverresponse该库在浏览器中按预期工作。但是,当我尝试通过调用$('.special-link').click()测试Jasmine中的库时,无法观察到对D

javascript - AngularJS 1.3.15 如何同步测试动画?

我猜我遇到了angular-animate.js从1.2版到1.3版的迁移问题。这是我的动画'usestrict';angular.module('cookbook',['ngAnimate']).animation('.slide-down',function(){varNG_HIDE_CLASS='ng-hide';return{beforeAddClass:function(element,className,done){alert('beforeadd');if(className===NG_HIDE_CLASS){element.slideUp(done);}},remove

javascript - before/afterAll() 未在 jasmine-node 中定义

我正在尝试使用jasmine的beforeAll和afterAll方法,用frisby.js创建一套测试,因为实际上,frisby不支持这种方法。所以,这就是我想要做的:varfrisby=require('frisby');describe("setUpandtearDown",function(){beforeAll(function(){console.log("testbeforeAll");});afterAll(function(){console.log("afterAll");});//FRISBYTESTS});//endofdescribefunction如果我将b

javascript - 测试更高级别的 javascript 事件

我正在寻找一个适用于规范测试用户交互(例如拖放、悬停、双击/单击和在Canvas上绘图)的javascript测试库。我看过几个库,包括jspec和jasmine,但它们似乎都更基于单元测试。如果我忽略了上述任何一个库都支持此类测试的事实,我会喜欢一个例子。编辑所以我昨晚做了很多查找,但确实没有发现任何东西。如果可能的话,我希望在更高层次上模拟用户交互,而不是像jasmine这样的capybara风格,因为它只是伪造与dom的交互。我想要一个实际模拟鼠标按下->鼠标移动->鼠标弹起事件链的库。有这样神奇的创造物吗?发布赏金编辑因此,我继续试验JS测试库,但我对它们在html5Canva

javascript - 使用 .toHaveBeenCalledWith 的 Jasmine 测试注册表失败

我正在处理的单页应用程序有一个包含两种表单的登录View:登录表单和注册表单。以下规范描述了这些表单的测试。我正在使用Jasmine-jQuery1.4.2.//user_spec.jsdescribe("User",function(){varuserController;beforeEach(function(){loadFixtures('menu.html');userController=newMyApp.User.Controller();});describe("LoginView",function(){beforeEach(function(){//Mockthe$.

javascript - 在 PhantomJS 中设置元素高度

在PhantomJS中测试时如何设置元素高度?我正在使用Jasmine框架在Karma上进行测试,并在PhantomJSheadless浏览器上运行。我正在尝试测试与“无限滚动”有关的AngularJS指令(当用户滚动到容器元素底部附近时自动加载项目)。我不使用jQuery,我也不希望(除非没有其他办法)。我正在使用.clientHeight、.scrollTop和.scrollHeight属性。我的指令按预期工作,至少在Chrome中是这样。我尝试为我的指令设置一个测试,但我找不到创建非零高度元素的方法。下面的代码让我不高兴:describe('something',function

javascript - 如何添加 Jasmine 自定义匹配器 Typescript 定义?

我去过lookingaround这个问题看起来像一个recurringthing.但是,我发现的解决方案似乎都不适合我。使用以下内容:{"typescript":"2.3.2","jasmine-core":"2.6.1","@types/jasmine":"2.5.47"}我无法让Typescript合并包含我的自定义匹配器定义的命名空间声明。添加这个:declarenamespacejasmine{interfaceMatchers{toBeAnyOf(expected:jasmine.Expected,expectationFailOutput?:any):boolean;}}隐

javascript - 期望一个 float 数组接近 Jasmine 中的另一个数组

我正在测试一个返回数字数组的Javascript函数,以查看返回的数组是否包含与包含预期输出的数组相同的元素:expect(myArray).toEqual(expectedArray);如果myArray和expectedArray仅包含整数,则此操作完美无缺,但如果存在至少一个float,则会因浮点精度错误而失败。toBeCloseTo似乎对数组不起作用。目前我正在循环进行成员检查:for(vari=0;i...但是有没有更简洁的方法来做到这一点?如果测试因任何原因失败,输出将包含大量骇人听闻的错误消息。 最佳答案 下面的代码应

javascript - Jasmine 不能监视事件处理程序?

尝试使用Jasmine测试事件处理程序是否在单击的元素上被调用。有一个包含DOM元素“PadElement”的“Pad”对象,它会被点击。事件处理程序是Pad对象上的一个方法:GRAPH.Pad=function(graphDiv,graph){this.graph=graph;this.clickHandler=function(e){console.log('padElementclickHandlercalled');//this.graph.createVertex(e.clientX,e.clientY);};this.padElement=GRAPH.padElement(

javascript - 我什么时候应该在我的 Angular JS 单元测试中使用 $provide 与 Jasmine Spies

我在一个大型Angular应用程序上工作,最初我们通过使用$provide来模拟服务来完成大量测试。然而,我们现在在我们的测试中有很多JasmineSpies,以便对服务进行stub和监视。即spyOn(myService,'myMethod').andReturn'myValue'我们真的应该为此使用$provide还是在某些情况下监视服务是最好的方法?在Angular测试中,他们使用spyspyingonJquery我会将其视为外部服务。spyOn(jq.prototype,'on');$provide似乎更多用于内部服务。module(function($provide){$pr