草庐IT

javascript - QUnit 不会运行测试

我刚开始使用QUnit时遇到了问题。我目前正在使用TypeScript,它是一个JavaScript编译器。我在与主类结构平行的类中进行测试。在每个类中,我都有一个名为runTests()的函数。为了执行这些测试,我遍历并获取所有以“Test”结尾的类,然后调用它们的runTests()函数。runTests()函数的一个示例是:runTests=function(){QUnit.test("5=5",function(){QUnit.ok(5==5,"okay");});}我知道所有的runTests()工作(因为它们被调用,因为控制台输出而被确认),但最多它只向我显示一个测试。它似

javascript - 为什么将属性添加到对象文字的原型(prototype)会更改其 "type"?

所以我有一个简单的isPlainObject方法用于测试JavaScript对象字面量:varisPlainObject=function(obj){returntypeofobj==="object"&&{}.toString.call(obj)==="[objectObject]";};现在我有一个简单的对象:varobj={'one':1,'two':2,'three':3};当我通过isPlainObject(obj)函数运行它时,它按预期工作并返回true。我的问题来自向对象的原型(prototype)添加一个属性:obj.constructor.prototype.four

javascript - 使用 QUnit(或其他单元测试工具)测试 Maps/Sets

我们如何断言ES6Maps和Sets的相等性?例如://ES6Mapvarm1=newMap();m1.set('one',1);varm2=newMap();m2.set('two',2);assert.deepEqual(m1,m2);//outputs:passed.//ES6Setvars1=newSet();s1.add(1);vars2=newSet();s2.add(2);assert.deepEqual(s1,s2);//outputs:passed.目的是断言Sets/Maps的元素是相等的。这两个断言都应该失败。是否有deepEqual的等价物?对于集合/map?换

javascript - 如何创建引用另一个类的 QUnit 测试?

我正在尝试将JavaScript单元测试添加到我的网站中。我使用VS2013,我的项目是一个ASP.NET网站。根据建议(http://www.rhyous.com/2013/02/20/creating-a-qunit-test-project-in-visual-studio-2010/)到目前为止我已经完成了:创建了新的ASP.NET应用导入QUnit(使用NuGet)在“脚本”中添加了指向我原始网站中js文件的链接(文件PlayerSkill.js-包含PlayerSkill类和trainings.js-包含Trainer和其他一些类)创建新文件夹“TestScripts”添加

javascript - 在 QUnit 中比较两个数组的最简单方法是什么

我正在编写JavaScript单元测试(使用QUnit库)。我需要验证我的数组是否包含预期的(且仅包含)元素。vararray=getArrayFunction(a,b);equal(["one","two","three"],array,"Testisfailingevenif'array'containsneededelements");最简单的方法是什么? 最佳答案 您应该使用deepEqual()代替equal()。这将比较数组元素和对象属性,而不仅仅是使用==比较运算符,对于不共享相同构造函数的对象,它的计算结果为fals

javascript - 让 QUnit 按顺序运行测试

我使用qunit为我拥有的javascript代码编写了一系列测试。现在由于某种原因,我列表中的第一个测试将运行,然后列表中的最后一个测试运行,然后是倒数第二个、倒数第三个、倒数第四个等等……这对我的测试至关重要事情按照我的顺序运行。我尝试关闭该选项,其中qunit首先运行上次失败的测试,但它仍在这样做。有什么办法可以解决这个问题吗? 最佳答案 首先,弄清楚为什么您的测试必须按特定顺序运行。单元测试的全部意义在于测试是原子的,应该可以按任何顺序运行它们——如果你的测试套件不能做到这一点,你需要找出原因,因为它可能代表一个更大的问题。

javascript - 使用 qUnit 进行 Javascript 测试

我喜欢用于JavaScript单元测试的qUnit,并且已经成功地将它用于一个几乎完全是AJAX的大型Web托管平台。但是,我必须手动在浏览器中运行它,或者将其作为Windows计划任务运行,这并不理想。有没有人将jUnit测试作为自动化测试套件的一部分运行,就像您在(比如说)perl或Java中那样? 最佳答案 最简单的方法可能是使用Selenium2运行qUnit测试,来自JUnit测试。Selenium2在Firefox、IE、Chrome或它自己的HtmlDriver中打开网页,几乎可以用呈现的页面做任何事情,尤其是qUni

javascript - 在 PhantomJS 2 中运行测试时从 Karma 截取屏幕截图?

我需要一种在使用QUnit和Karma在PhantomJS2.0.1中运行的测试期间截屏的方法我找到了这个命令:window.top.callPhantom('render');这不会引发任何错误,但似乎不起作用,或者至少,我不知道在哪里可以找到截取的屏幕截图。有什么线索吗? 最佳答案 找到方法了!解决方案我不得不编辑我的自定义PhantomJS自定义启动器添加一个选项:PhantomJSCustom:{base:'PhantomJS',options:{onCallback:function(data){if(data.type=

javascript - QUnit、Sinon.js - 如何确保发布到假服务器的请求正文正确?

我有一个JavaScript函数,它向我正在为其编写单元测试的远程API执行Post。我要测试的方法是这样的:varfunctionToTest=function(callback,fail){$.ajax({url:"/myapi/",type:"POST",data:{one:'one',two:'two'},accept:"application/json",contentType:"application/json"}).done(function(x){log=generateLogMessage('Success');callback(log);}).fail(functi

javascript - phantomJS 是否支持地理定位?

我正在尝试使用PhantomJS运行qunit测试用例。当phantomJS尝试访问DOM的navigator.geolocation函数时,我的一项测试挂起。同样的测试在浏览器中运行良好,只是卡在带有phantomJS的控制台中。phantomJS是否支持地理定位?有什么建议吗?在以下if条件中中断if(navigator.geolocation){window.navigator.geolocation.watchPosition(updateLocation,null,{frequency:3000});} 最佳答案 没有。只