草庐IT

javascript - 使用 QUnit 对 AJAX 请求进行单元测试

我们正在尝试为JS密集型Web应用程序实现QUnitJavaScript测试。我们正在努力寻找一种方法来成功测试涉及jQueryAJAX请求的方法。例如,我们有下面的构造函数(显然这是一个非常简单的例子):varX=function(){this.fire=function(){$.ajax("someURL.php",{data:{userId:"james"},dataType:"json",success:function(data){//Dostuff}});};};varmyX=newX();myX.fire();我们正在尝试找到一种方法来测试fire方法,最好使用stubU

javascript - QUnit、Sinon.js 和 Backbone 单元测试受挫 : sinon spy appears to fail to detect Backbone Model event callbacks

在下面的单元测试代码中:TestModel=Backbone.Model.extend({defaults:{'selection':null},initialize:function(){this.on('change:selection',this.doSomething);},doSomething:function(){console.log("Somethinghasbeendone.");}});module("Test",{setup:function(){this.testModel=newTestModel();}});test("intra-modeleventbi

javascript - QUnit 测试在 Travis CI 上失败(在带有 grunt.js 的 phantomjs 上运行)

我们在JavaScript上的开源项目enchant.js中引入了带有travisCI的CI系统。https://github.com/wise9/enchant.js我们喜欢qunit测试,我们使用grunt.js(npm)运行它们,但它在TravisCI上失败并出现如下错误:PhantomJStimedout,possiblyduetoamissingQUnitstart()call.Use--forcetocontinue.完整的错误信息在这里:https://travis-ci.org/wise9/enchant.js/builds/4016842奇怪的是,每次我运行grunt

javascript - headless (headless) JavaScript 测试 HTML5 音频/视频

我知道还有很多其他类似的问题,但是答案并没有提供解决这个问题的方法。我的网站上使用了一个使用HTML5网络音频的JavaScript文件,我想对其进行单元测试。我研究过将QUnit与PhantomJS结合使用,在你说什么之前我知道Phantom不支持它(http://phantomjs.org/supported-web-standards.html),但是我想知道是否有办法解决这个问题?在浏览器中使用QUnit测试它会像您预期的那样工作,但我不想每次都使用浏览器测试它,我希望它在服务器上自动进行。其中一个测试失败的示例:QUnit.test("isPlaying",function(

javascript - sinon.stub() vs sinon.sandbox.stub()?

在我们的前端单元测试中使用sinon和sinon-qunit,我很难理解这些方法的区别。我们正在使用sinon.sandbox.stub()(字面意思是函数,我们不创建沙箱)并且这些stub显然会在每次测试后自动恢复。我只是在文档中的任何地方都看不到这一点。我不认为存在这种方法,我认为您需要使用sinon.sandbox.create()显式创建沙箱。在该沙箱对象上,您将调用stub函数,即mySandbox.stub(),而不是"sinon.sandbox.stub()"。谁能帮我理解一下? 最佳答案 stub-Sinon.JSs

javascript - 如何使用新的断言函数扩展 QUnit?

我想向QUnit添加新断言。我做了这样的事情:QUnit.extend(QUnit.assert,{increases:function(measure,block,message){varbefore=measure();block();varafter=measure();varpasses=before当我在测试中使用increases(foo,bar,baz)时,我得到了ReferenceError:increasesisnotdefined从浏览器控制台我可以看到increases与所有其他标准函数一起在QUnit.assert中找到:ok,等于、deepEqual等从控制台

javascript - QUnit 奇怪的夹具行为,测试交替失败和通过

我在QUnit中设置了以下内容:/*Dozenorsoprevioustestshere*/test("Testsomemarkupgeneration",function(){$('#qunit-fixture').plugin();//jQueryplugin:Generatesatablevarrows=$('#qunit-fixturetabletbodytr');count=rows.length;//Counttherowsconsole.log(count);equal(count,"96","Expectthenumberofrowstobe96");});当它运行时,

javascript - 使用 Qunit 检查图像是否正确加载

我正在尝试通过将URL设置为测试图像的src属性并检查error事件处理程序是否顺利。到目前为止,我所拥有的是:test('image',function(){vartest_image=$('#test-image');test_image.error(function(e){//properlytriggeredconsole.log(e);is_valid=false;//ok(false,'Issueloadingimage');breaksqunit});varis_valid=true;test_image.attr('src','doesntexist');console

javascript - 在测试使用 qunit 显示的方法时避免/捕获/验证 Javascript 警报

我刚开始使用Qunit,想知道是否有办法捕获/验证/忽略警报,例如:functionto_test(){alert("I'mdisplayinganalert");return42;}然后有类似的东西:test("to_test",function(){//inthiscaseI'dliketotestthealert.alerts("I'mdisplayinganalert",to_test(),"to_test()shoulddisplayanalert");equals(42,to_test(),"to_test()shouldreturn42");//inthiscaseI'd

javascript - 如何使用 sinon.js 对回调函数的内容进行单元测试

如何使用sinon.js模拟框架在回调函数中测试代码?JSFiddle:http://jsfiddle.net/ruslans/CE5e2/varservice=function(){return{getData:function(callback){returncallback([1,2,3,4,5]);}}};varmodel=function(svc){return{data:[],init:function(){varself=this;svc.getData(function(serviceData){self.data=serviceData;//***testthisli