草庐IT

angularJS-karma-jasmine

全部标签

javascript - AngularJS-ng :model - Field is readonly when bound to $q promise?

我试图从AngularJs(1.0.7)中的promise返回单个记录并将结果绑定(bind)到表单。表单正确绑定(bind),但输入字段是只读的-我无法编辑值。如果我改为将记录包装在一个数组中并使用ng:repeat进行迭代,则表单会正确绑定(bind)并且我可以编辑值。我创建了一个plnkr来清楚地展示这个问题:http://embed.plnkr.co/fOWyhVUfekRbKUSRf7ut/preview您可以编辑直接绑定(bind)和列表绑定(bind)的输入字段,但是不能编辑绑定(bind)到单个promise的字段。是否可以将ng:model直接绑定(bind)到从pr

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

javascript - 学习angularjs 1.3,知道angular 2将在1年后发布

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion我想学习angularjs1.3,但我在做出决定时遇到了一些问题,如果现在是时候这样做,因为当版本2发布时,angular将发生巨大变化。花时间和精力去学习一个我们知道它会改变的框架是值得的。人们对此有什么建议。能否请您推荐任何其他易于学习的框架?谢谢!

javascript - 监视 Karma 和 Jasmine 中的 setTimeout 和 clearTimeout

我似乎无法在通过Karma运行的Jasmine测试中监视setTimeout和clearTimeout。我已经尝试了所有这些的变体spyOn(window,'setTimeout').and.callFake(()=>{});spyOn(global,'setTimeout').and.callFake(()=>{});spyOn(window,'clearTimeout').and.callThrough();clock=jasmine.clock();clock.install();spyOn(clock,'setTimeout').and.callThrough();runMyC

javascript - Karma 测试错误 "unable to init ocLazyLoad"

来自快速入门sb-admin-angular,我正在尝试运行测试,但出现错误unabletoinitocLazyLoad。(这是Windows7机器。)我用来运行测试的命令是:$grunttest--force我从thisthread了解到我必须确保在karma.conf.js中添加了ocLazyLoad脚本的路径。files:['bower_components/angular/angular.js','bower_components/angular-mocks/angular-mocks.js',...'bower_components/oclazyload/dist/ocLaz

javascript - 如何在 AngularJS 中实现 jQuery 范围 slider

我正在尝试使用anuglar-slider在我现有的AngularJS应用中。我关注了作者的评论here我从作者的github下载了以下文件(在Head标签中)并添加到我的index.htmlHTML代码:App.js(Angular代码)。我按照作者的指示添加了第二行,我怀疑我在那里做错了什么varapp=angular.module('myApp',[])angular.module('uiSlider',[]);app.constant('Config',{baseURL:"http://blah",httpTimeout:36000});app.config(function(

javascript - 测试 Jasmine 中是否触发了事件

在没有jquery-jasmine的情况下,如何测试Jasmine中是否触发了事件?我正在做一个不使用jQuery的项目(wohoo),我正在尝试为我的菜单触发功能编写一个单元测试。它是这样工作的:你点击一个按钮我的可测试组件然后运行​​document.dispatchEvent(newCustomEvent('menu.toggle'))我想测试组件是否确实发送了自定义事件。我该如何测试? 最佳答案 尝试了一下,找到了一个行之有效的解决方案:importtriggerEventfrom'trigger-event';import

javascript - AngularJS bootstrap popover 自定义指令

我使用bootstrap自定义弹出窗口创建了一个指令。这可以从用户输入组名,它有两个按钮用于将该值应用于模型并在工具提示上显示该值,还有一个按钮用于关闭弹出窗口。我正在使用popoverjava脚本事件,问题是单个popover工作得很好但是当我打开另一个popover时,这个popover不会自行关闭。在打开一个弹出窗口时需要帮助关闭其他弹出窗口。这是plnk显示指令。这是代码varapp=angular.module('myApp',[]);app.directive('customEditPopover',function(){return{restrict:'A',templa

javascript - Jasmine 测试中条件语句的使用

我有两个功能要测试;一个仅在“现代浏览器”中运行,另一个仅在“旧版”浏览器中运行。我使用Jasmine作为我的测试框架,使用Karma来运行我的测试。Karma将启动许多运行所有测试的浏览器。我的问题是在所有浏览器中测试我的所有功能会导致一些测试失败。例如,测试一个只应在现代浏览器中运行的函数在IE8中测试时会失败。要测试的代码:functiongetStuffFromSmartBrowser(){return'foo';}functiongetStuffFromNotSoSmartBrowser(){return'bar';}if('intelligence'inbrowser){g

javascript - 使用特定的 keyCode 测试 Jasmine 中的按键事件

我正在为触发事件的AngularJS指令编写测试当某些键被按下时。根据我的手动测试,一切正常。我想成为一名优秀的人,也想拥有一个完整的单元测试套件,但我遇到了一个我自己无法解决的问题:我想发送一个具体的keyCode在我的triggerHandler()在我的测试中调用,但我找不到一种方法来指定实际有效的键。我知道很多关于使用特定数据构建和发送事件的主题的问题和答案,但它们都不适用于我的设置:我的设置Karma测试运行器运行测试的PhantomJS浏览器(但也尝试过Firefox和Chrome但没有成功)我没有使用jQuery,我希望有一个常规的JS解决方案。一定有!测试代码varev