草庐IT

javascript - 使用 Jasmine 在 AngularJS 中测试去抖函数永远不会调用该函数

我在使用下划线去抖动的服务中有一个方法。在该方法内部是对不同服务上的方法的调用。我正在尝试测试是否调用了不同的服务。在我尝试测试去抖动方法时,从未调用过不同服务的方法,Jasmine失败了:“预期spyaMethod已被调用。”我知道它被调用的事实(它在chrome中记录到控制台),它只是在预期已经失败之后被调用。所以...(最好)不添加Sinon或其他依赖项并使用给予解决方案的奖励积分*不必将_.debounce变成$timeout...怎么办?angular.module('derp',[]).service('herp',function(){return{aMethod:fun

javascript - Protractor - 单击列表中的链接

给定一个包含任务列表的待办事项应用程序:遛狗、吃午餐、去购物。每个任务都有一个“完整”链接。如何使用Protractor单击第二个任务“吃午饭”的完整链接?我最好在测试中不使用索引来执行此操作。html结构是这样的...{{task.name}}Complete这似乎是一种常见情况,所以肯定有一个我忽略的简单解决方案。提前致谢 最佳答案 element.all(by.repeater('taskintasks')).get(1).element(by.linkText('Complete')).click()或element.all

javascript - Spec 没有期望 - Jasmine 测试回调函数

我有一个使用d3计时器调用的方法。每当调用该方法时,该方法都会发出一个具有几个值的对象。其中一个值随时间增加。我想编写一个测试来检查值是否按升序排列(即是否随时间增加)。因此,为了解决这个问题,在我的测试中,我订阅了事件发射器,并且在订阅内部,我将接收到的对象推送到本地数组中。然后,我期望array[i]小于array[i+1]。我认为我的逻辑是完全正确的,但我不确定为什么我从Jasmine那里收到错误消息说thespechasnoexpectations即使我有一个。代码如下:letx=d3.timer((elapsed)=>{this.method();//callthefunct

javascript - 如何使用 Jasmine 对链式方法进行单元测试

我在对以下方法进行单元测试时遇到问题:$scope.changeLocation=function(url){$location.path(url).search({ref:"outline"});};我编写了以下单元测试,但目前因出现此错误而失败(类型错误:无法读取未定义的属性“搜索”):var$locationMock={path:function(){},search:function(){}};it('changeLocationshouldupdatelocationcorrectly',function(){$controllerConstructor('CourseOut

javascript - 向下滚动到带有 Protractor 的元素

我正在测试的页面上有一个元素,我必须向下滚动才能看到它。例如,当我执行测试时,我得到Elementisnotclickableatpoint(94,188)。我尝试了以下方法:dvr.executeScript('window.scrollTo(0,250);');但是没有用。有谁知道这是如何工作的? 最佳答案 现在回答你似乎太晚了..但无论如何,以下代码帮助我消除了Elementisnotclickable错误。varelm=element.all(by.css('.your-css-class')).get(9);browser

javascript - Jasmine 单元测试具有两个依赖项的 AngularJS 工厂($http 和另一个返回 promise 的工厂)

我正在为自定义应用程序使用Ionic框架。在此过程中,我正在尝试为工厂编写单元测试datastoreServices它依赖于DomainService和$http.我对Jasmine单元测试的实现感到困惑。我的工厂如下。app.factory("datastoreServices",["$http",function($http){return{getData:function(data,DomainService){return$http.post(DomainService.host+'factor',data);}};}]);app.factory('DomainService'

javascript - 当我尝试使用 jasmine 进行测试时,应用程序文件夹未加载到 Ext.appliation 中

我正在尝试在我的应用程序(Extjs5)中实现jasmine以进行单元测试。为此,我创建了应用程序测试文件。Ext.require('Ext.app.Application');Ext.Loader.setConfig({enabled:true});Ext.onReady(function(){varApplication=Ext.create('Ext.app.Application',{name:'epmct',appFolder:'app',launch:function(){Ext.create('epmct.view.vpp.dashboard.VppDashboardMa

javascript - 如何点击页面中间的按钮

HTML代码RESUME问题:单击我们应用程序中的链接后,页面将在新选项卡中打开。在那个新页面中,我必须单击简历选项卡(它位于页面中间)。我必须向下滚动并单击该选项卡,但我无法单击。我的代码:browser.executeScript('window.scrollTo(0,250);');element(by.partialLinkText("RESUME")).click();请帮帮我 最佳答案 在尝试单击元素之前切换到新选项卡。稍后,使用ExpectedConditions实例和elementToBeClickable()等待元

javascript - 自定义 Jasmine Matcher 中已解决和已拒绝的 promise

故事:我们开发了一个自定义的jasmine匹配器,它主要做两件事:将鼠标悬停在给定元素上检查是否显示了带有所需文本的工具提示实现:toHaveTooltip:function(){return{compare:function(elm,expectedTooltip){vartooltipPage=requirePO("tooltip");browser.actions().mouseMove(elm).perform();browser.wait(EC.visibilityOf(tooltipPage.tooltip),5000,"Tooltipisstillnotvisible."

javascript - QUnit 中有 spyOn 类似物吗?

我正在为Jasmine和QUnit编写不同测试用例的规范以比较它们,在我需要编写测试以检查事件是否绑定(bind)到元素之前它们看起来是一样的。事件绑定(bind)看起来像$('.page').live('click',function(){page_clicked($(this))});page_clicked是私有(private)方法,但它调用了另一个模块的公共(public)方法。这是Jasmine规范:it('shouldbindeventstopages',function(){spyOn(search,'get_results');$('.page:eq(0)').tri