草庐IT

jasmine-bail-fast

全部标签

javascript - 如何监视 Jasmine 中的嵌套方法?

考虑这种常见情况:vara={b:{c:function(){}}}我想监视c,虽然它很容易:spyOn(a.b,'c');但是它创建了一个spy但它不起作用。没有显示任何错误,调试时我可以看到有一个spy。如何监视嵌套方法?更新输出为:Object[objectObject]没有方法'tohaveBeenCalledWith' 最佳答案 我猜错字是问题所在;正如您概述的那样,监视嵌套函数效果很好。注意大小写:Jasmine函数是toHaveBeenCalled()。由于您编写了tohaveBeenCalled()错误消息是有意义的

javascript - 测试失败后如何让 jasmine.js 停止?

我希望运行者在第一次失败后停止,而不是运行所有测试。 最佳答案 这是一个hack,但您可以通过在第一次测试之前插入此脚本来做到这一点;//aftereverytesthasrunafterEach(function(){//checkifanyhavefailedif(this.results_.failedCount>0){//ifso,changethefunctionwhichshouldmovetothenexttestjasmine.Queue.prototype.next_=function(){//toinsteads

javascript - 有没有办法在自定义匹配器中使用 Jasmine 默认匹配器?

我在一些Jasmine测试规范中有一个自定义匹配器,形式如下:this.addMatchers({checkContains:function(elem){varfound=false;$.each(this.actual,function(actualItem){//Checkiftheseobjectscontainthesameproperties.found=found||actualItem.thing==elem;});returnfound;}});当然,actualItem.thing==elem实际上并没有比较对象内容——我必须使用Objectcomparisonin

javascript - javascript getter 的 Jasmine 测试不起作用

我正在为angularjs工厂编写一些测试,但有些期望不起作用,我真的不知道为什么。这是我的工厂(其中的一部分)。'使用严格';angular.module('myAppMod').factory('Person',function(BaseModel){returnBaseModel.extend({getfullname(){varname=[];if(this.first_name){name.push(this.first_name);}if(this.person_extra&&this.person_extra.middle_name){name.push(this.per

javascript - 揭示模块模式 - 使用 Jasmine 进行单元测试

在与揭示性模块模式短暂接触后,我开始意识到单元测试模块的挫折。但是,我无法确定这是否是我测试模块的方法,或者是否有某种形式的解决方法。考虑以下代码:varmyWonderfulModule=(function(){functionpublicMethodA(condition){if(condition==='b'){publicMethodB();}}functionpublicMethodB(){//...}return{methodA:publicMethodA,methodB:publicMethodB}}());如果我想测试(使用Jasmine)从publicMethodA到

javascript - 如何使用 Jasmine 在 AngularJS 中测试 .catch Promise 返回?

我是Javascript的新手,刚开始学习AngularJS,但我的大部分测试用例都与我发现的一些很好的示例一起使用。不幸的是,我似乎找不到任何可以帮助我测试当前案例的东西。我正在使用一个模拟服务测试一个Controller,该服务的方法返回一个promise。我希望模拟服务返回一个错误,以便在Controller方法中执行“.catch”block。我可以通过几种方式判断它没有被正确调用:我正在使用istanbul用于代码覆盖,它告诉我我没有覆盖“catch”'.catch'block中的代码没有被执行,据我通过调试得知被测Controller,具体需要测试$scope.login中

javascript - Protractor Jasmine 描述嵌套在 it block 中的 block

首先,下面的代码似乎可以工作。但是,我还没有看到有人这样做,所以我想知道这是否合法,以及我是否遗漏了无法预料的缺点。上下文是我正在使用Protractor编写E2E测试,它使用Jasmine风格的describe/itblock。我的目标是加载一个页面并运行一堆it测试block,而不是每次都重新加载该页面(因为它很耗时)。我的构造是:describe("Homepage",function(){beforeEach(function(){browser.get("/");//loadsthepage});it('elements',function(){describe('testg

javascript - 如何使用jasmine测试一个需要很长时间才能响应的异步函数?

我正在使用一个函数从webapi获取数据。基本上使用$.ajax。我现在用waits()像这样测试它:describe('xxxxxxxxxxxxxxxxxxxxx',function(){varr;it('fetchFilter',function(){runs(function(){model.fetch(opts).done(function(data){r=data;});});waits(2000);runs(function(){expect(r[0].gender).toBeDefined();});});});问题是:不能保证waits(2000)会很好地完成这项工作。

Windows 筛选器驱动程序 : Fast IO and IRPs

我编写了一个只关心写入的简单过滤器驱动程序。过滤器只注册IRP_MJ_WRITE。过滤器驱动程序会删除它不关心的内容:如果写的是0字节长如果请求者是内核模式如果元数据中的文件名与我们感兴趣的特定文件匹配我想要捕获的是所有实际写入磁盘的写入。我应该关注哪些写入?目前我正在捕获所有IRP和FAST_IO。但是捕获两者会产生一些重复。仅捕获IRP,我似乎遗漏了一些数据,仅捕获FAST_IO也是如此。我读过http://msdn.microsoft.com/en-us/library/ff548576.aspx(“IRP不同于快速I/O”),但这并没有阐明我的经验数据。我正在尝试做的是在过滤器

windows - 在 C++ 中模拟 Alt Tab 键盘按下以启动 Fast Switch 窗口

我有一个需要在触摸屏设备上运行的项目的想法。这个想法是在屏幕上有一个按钮,按下它可以在打开的项目之间切换。那么ALT+TAB键盘快捷键究竟是如何工作的。我知道C++中的SendKeys::Send()事件可以模拟按键,但当我尝试发送ALT+TAB时它似乎对我不起作用。那么有没有一种方法可以让窗口通过C++显示所有打开的程序(就像按下ALTTAB时一样)?PS该项目是Windows应用程序!Windows7开始,但希望它可以在以后与更多Windows系统兼容。 最佳答案 自从您提到SendKeys以来假设使用C++/CLI。SendK