手机版

Javascript单元测试框架QUnitjs详细介绍

时间:2021-11-08 来源:互联网 编辑:宝哥软件园 浏览:

1.什么是库奈特库奈特(http://qunitjs.com/)是一个非常强大的javascript单元测试框架,可以帮助你调试你的代码。它由jQuery团队的成员编写,是jQuery的官方测试套件。但是QUnit一般足以测试任何常规的javascript代码,甚至可以通过Rhino或V8等一些javascript引擎测试服务器端的JavaScript。如果你不熟悉“单元测试”的概念,请不要担心。这个不难理解:复制的代码如下:在计算机编程中,单元测试(也叫模块测试)是检查程序模块(软件设计的最小单元)正确性的测试。程序单元是应用程序中最小的可测试组件。在程序设计中,一个单元是一个单独的程序、函数、过程等。对于面向对象编程,最小的单元是一个方法,包括基类(超类)、抽象类或派生类(子类)中的方法。——引自维基百科。简单地说,您为代码的每个功能编写测试。如果所有这些测试都通过了,您可以确定代码没有缺陷(通常,这取决于您的测试有多彻底)。第二,为什么要测试代码?如果你之前没有写过任何单元测试,可以直接把代码上传到网站,点一会看看有没有问题,尽量解决你发现的问题。这样会有很多问题。首先,很无聊。事实上,点击并不是一件容易的事情,因为你必须确保所有的东西都被点击了,很可能你错过了一两个。其次,你为测试所做的一切都不能被重用,这意味着很难返回。什么是回归?想象你写了一些代码,测试了它,修复了你发现的所有缺陷,然后发布了它。这时,一个用户发送了一些关于新缺陷的反馈,需要一些新功能。你回到代码,修复这些新的缺陷并添加新的特性。接下来可能发生的是一些旧的缺陷重新出现,这就是所谓的“回归”。看,现在又要点击了,可能找不到这些旧的缺陷;即使你这样做了,也需要一段时间才能发现你的问题是由退货引起的。使用单元测试,您编写测试来发现缺陷,一旦代码被修改,您就通过测试来再次过滤。如果发生回归,一些测试将会失败,因此您可以很容易地识别它们,并知道代码的哪个部分包含错误。现在你知道你刚刚修改了什么,你可以很容易地解决它。单元测试的另一个优势,特别是对于web开发,使得跨浏览器兼容性测试变得容易。只需在不同的浏览器中运行您的测试用例。如果一个浏览器有问题,您可以修复它并重新运行这些测试用例,以确保它不会在其他浏览器中导致回归。一旦所有的测试都通过了,你就可以肯定地说所有的目标浏览器都支持它。我想提一个John Resig项目:TestSwarm(http://testswarm.com/)。它将Javascript单元测试提升到了一个新的水平。通过分发它,这是一个网站,其中包含许多测试用例。任何人都可以在那里运行一些测试用例,然后将结果返回给服务器。这样,代码可以在不同的浏览器中测试,甚至可以非常快速地在不同的平台上运行。

第三,如何用QUnit编写单元测试。那么,如何用QUnit正确编写单元测试呢?首先需要设置一个测试环境:复制代码如下:DOCTYPE html html head title qunit Test Suite/title link rel='样式表' href=' http://github.com/jquery/qunit/raw/master/qunit . CSS ' type=' text/CSS ' media=' screen ' script type=' text/JavaScript ' src=' http :http://github.com/jquery/qunit/raw/master/qunit/qunit . js '/script!-您的项目文件在这里-脚本类型=' text/JavaScript ' src=' http : my PROJECt . js '/脚本!-您的测试文件在这里-脚本类型=' text/JavaScript ' src=' http : mytests . js '/脚本/head body h1 id=' qunit-header ' QUnit Test Suite/H1 id=' QUnit-banner '/H2 div id=' QUnit-testrunner-toolbar '/div H2 id=' QUnit-user agent '/H2 ol id=' QUnit-tests '/ol/body/html正如您所看到的,这里使用了QUnit框架的托管版本。要测试的代码已经添加到myProject.js中,您的测试应该插入到myTest.js中。要运行这些测试,只需在浏览器中打开HTML文件。是时候写一些测试了。单元测试的基石是断言:断言是一个预测代码返回结果的命题。如果预测是错误的,断言失败了,你就会知道出了问题。要运行断言,您应该将它们放入测试用例中:如下复制代码://让我们测试一下这个函数的函数是even(val){ return val % 2===0;}test('isEven()',function() { ok(isEven(0),' Zero是偶数');ok(isEven(2),‘二也是’);ok(isEven(-4),‘So为负四’);好的(!isEven(1),“一不是偶数”);好的(!isEven(-7),“两者都不是负七”);})这里我们定义了一个函数:isEven,用来检查一个数字是否为奇数,我们要测试这个函数,确保它不会返回不正确的答案。我们首先调用test(),它构建一个测试用例。第一个参数是要在结果中显示的字符串,第二个参数是包括我们的中断的回调函数。我们写了五个断言,都是布尔型的。第一个参数预期为真的布尔断言。第二个参数仍然是要在结果中显示的消息。这是你想要的,只要你运行测试:

四.深入研究参考上面只简单介绍了qunit.js,断言方法很多。有关详细信息,请参考api文档:http://api.qunitjs.com/单元测试是在发布代码之前测试代码的一个非常好的方法。如果你之前没有写过任何单元测试,那么是时候开始了!

版权声明:Javascript单元测试框架QUnitjs详细介绍是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。