关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭9年前。Improvethisquestion我们在项目中使用了JQuery和一些Javascript。我们正在考虑围绕它编写一些单元测试,其中有不同的方法,例如JSUnit、Qunit、XUnit任何人都可以建议哪种是对javascript/jquery进行单元测试的最佳方法,如果可能的话,可以提供一些好的链接吗?
我正在为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
我正在IFRAME中进行QUnit测试,并且有一个递归JavaScript函数,它在启动QUnit之前将所有脚本从父页面加载到IFRAME中。这很好用。我的问题是我们的一些脚本使用document.ready来启动。例如:$(document).ready(function(){//blah});做他们的工作。我不希望仅仅为了测试而更改生产代码,并且我不希望这些生产脚本在加载每个脚本之前认为IFRAME文档已“准备就绪”。如何延迟“document.ready”本身?这是我的伪代码,可以为您提供一个工作示例:scripts[0]="/foo/bar.js";scripts[1]="/b
我正在研究用于JavaScript单元测试的QUnit。我处于一种奇怪的情况,我正在检查从Ajax调用返回的值。对于下面的测试,我是故意让它不及格的。//testtocheckifthepersonsarereturned!test("getPersons",function(){getPersons(function(response){//persons=$.evalJSON(response.d);equals("boo","Foo","Thenameisvalid");});});但它最终总是通过。下面是进行Ajax调用的getPersons方法。functiongetPers
目前,我正在使用PhantomJS在我们的构建服务器上的QUnit和Sinon框架中运行Javascript单元测试。但是,PhantomJS使用带有JIT编译器的JavaScriptCore作为它的Javascript引擎。相反,我想使用GoogleChrome中使用的V8引擎或IE中使用的Chakra。我想这样做是因为我想检查代码的平台兼容性。是否有像PhantomJS这样使用这些引擎的流行测试运行器? 最佳答案 我能想到的最接近的是Zombie.js,这是一个用Javascript编写的headless浏览器,在Node.js
是否可以对闭包中存在的javascript函数进行单元测试,例如,给定以下内容:(function(){vara=function(){//dosomething}window.b=function(){//dosomethingelse}})();是否可以在不公开的情况下对函数a进行单元测试?如果没有,是否有一个很好的方法来公开a,但只能在测试模式下? 最佳答案 你的匿名函数可以接受一个在测试模式下未定义的参数,并说这个参数将是一个对象,你可以用a填充对象而不暴露a直接。只是我的.02$
我有jQuery代码,当我点击一个链接时,它首先隐藏然后删除一些HTML,如下所示:$(this).parent().parent().hide('slow',function(){$(this).remove();});我想做一个QUnit测试,确保有问题的HTML已被删除:$(thelink).click();//Checkthatitisgone,byfindingthefirstiteminthelistentity=input.form.find('.recurrenceinput_occurrences.occurrencespan.actiona')[0];//Andma
直到现在,我习惯于在ready()函数中编写所有代码,例如:$(document).ready(function(){//allmycode});现在我看到使用这种方法时,我的代码不是“可单元测试的”,例如我无法从QUnit访问ready()中的内容。构造与使用ready()函数兼容并能够被测试的jQuery代码的正确方法是什么?有没有好的开源代码库或项目可以学习借鉴? 最佳答案 将您的代码放在就绪处理程序中,只调用就绪处理程序之外的函数:$(document).ready(function(){//callsomefunction
在服务器端,我们有用于BDD开发的Rspec/Cucumber(ruby)vowsjs(node.js)是否有可在Web浏览器上使用的BDD框架(不是qUnit或YUI测试,因为它们仅适用于TDD)? 最佳答案 看看Jasminedescribe("Jasmine",function(){it("makestestingJavaScriptawesome!",function(){expect(yourCode).toBeLotsBetter();});});http://pivotal.github.com/jasmine/htt
QUnit有一个断言,用于测试函数引发异常(QUnit/raises)。是否有可能-使用QUnit-断言函数不会引发异常。我意识到可以像下面的代码一样测试它:try{theTest();ok(true);}catch(e){ok(false,"Expectedtosucceed");}但我认为使用QUnit应该是可能的。有什么线索吗? 最佳答案 qunit中没有这个方法但是,如果您只编写以下更短的代码,您将获得相同的结果并获得额外的好处theTest();ok(true,"Myfunctiondoesnotcrash");1/如果测