新浦京娱乐场官网-301net-新浦京娱乐www.301net
做最好的网站

程序单元是应用的最小可测试部件

一、什么是 QUnit

QUnit( 是二个极度有力的javascript单元测量试验框架,能够帮您调节和测验代码。它是由 jQuery 团队的分子写的,並且是 jQuery 的法定测验套装。但QUnit一般是足以测量试验任何正规 javascript 代码,它竟然恐怕由此一些 javascript 引擎譬如 Rhino 或 V8 来测验服务器端 JavaScript。
若是您面生“单元测量检验”的定义,请不要操心。那不是很难领会的:

复制代码 代码如下:

在Computer编制程序中,单元测验(又称为模块测验)是对准程序模块(软件设计的细微单位)来开始展览科学核准的测验专门的学问。程序单元是应用的矮小可测验部件。在进程化编制程序中,多个单元正是单个程序、函数、进度等;对于面向对象编制程序,最小单元正是办法,包涵基类(超类)、抽象类、大概派生类(子类)中的方法。 — 引自维基百科。

简易地说,你为您的代码的各个功用写测量试验,假使具备这一个测量试验都由此了,那么您能够确实无疑的是,代码未有破绽(日常,依旧由你的测量试验有多透顶而定)。

二、为何你要测验你的代码

尽管你此前从未写过其余单元测量检验,你也许平素将您的代码上到网址上,点击一会拜访是还是不是有何难题应际而生,况兼尝试去化解你所开采的主题材料,采纳这种格局会有广大的标题。
率先,这是很讨厌的。点击事实上并非一件轻便的做事,因为您不得不确认保障每样东西都被点到况兼很有望您遗失了一个或多少个。

其次,你为测验做的每件事情是不能够复用的,那意味着它很难回归。什么是回归?想像一下你写了某些代码并测验,修复了具备你发觉的老毛病,然后公布。此时,多个用户发送了一部分有关新破绽的申报,而且需求有的新功效。你回来到代码中,修复这么些新弊端并扩大新功能。接下来只怕会发生的正是一些旧的劣势又复发了,这就 叫“回归”。看,未来你还得再去点击贰次,而且有望您还找不到这一个旧的担担破绽;纵然你那样做,那还要求一段时间才具弄驾驭你的标题是由回归引起的。使用单元测验,你写测验去发掘劣点,一旦代码被修改,您通过测验再筛选三次。假使回归现身,一些测验一定会失败,你能够很轻松地认出她们,知道哪一部分代码包括了错误。既然你精晓您刚刚修改了怎样,就足以很轻巧地化解。

除此以外三个单元测量试验的亮点,越发是对此web开拓来讲: 它使跨浏览器包容性测量试验很轻松。仅仅在差异浏览器中运作你的测验案例就行,假诺四个浏览器出现难点,你修复它同样爱抚复运转那么些测验案例,确定保证不会在其他浏览器引起回归,一旦全部通过测验,你能够料定的说,全数的目的浏览器都协助。

自己想提起三个 John Resig 的项目:TestSwarm( 它将 Javascript 单元测验带到了一个新的档次,通过使其布满,那是三个网址,当中包涵众多测量试验案例,任何人都得以去那运维一些测验案例,然后回到结果会回到到服务器。通过这种方法,代码会十一分飞速的在区别的浏览器实行测验,乃至不一样的阳台运维。

三、怎么着用 QUnit 写单元测量检验

那就是说,你怎么准确地用QUnit写单元测量试验呢?首先,您须要设置八个测量试验遭遇:

复制代码 代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>QUnit Test Suite</title>
    <link rel="stylesheet" href="" type="text/css" media="screen">
    <script type="text/javascript" src=";
    <!-- Your project file goes here -->
    <script type="text/javascript" src="myProject.js"></script>
    <!-- Your tests file goes here -->
    <script type="text/javascript" src="myTests.js"></script>
</head>
<body>
    <h1 id="qunit-header">QUnit Test Suite</h1>
    <h2 id="qunit-banner"></h2>
    <div id="qunit-testrunner-toolbar"></div>
    <h2 id="qunit-userAgent"></h2>
    <ol id="qunit-tests"></ol>
</body>
</html>

正如你所见,在此处运用了八个被托管的QUnit框架版本。
就要被测验的代码已被增多到 myProject.js 中,并且你的测验应该插入到 myTest.js 。要运行那么些测量检验,只需在一个浏览器中开拓那么些 HTML 文件。现在到了写些测量试验的时光了。
单元测量检验的木本是预知:

预感是一个命题,预测你的代码的回到结果。假使预测是假的,断言退步,你就驾驭出了难点。

运维断言,你应当把它们归入测量试验案例:

复制代码 代码如下:

// Let's test this function
function isEven(val) {
    return val % 2 === 0;
}

test('isEven()', function() {
    ok(isEven(0), 'Zero is an even number');
    ok(isEven(2), 'So is two');
    ok(isEven(-4), 'So is negative four');
    ok(!isEven(1), 'One is not an even number');
    ok(!isEven(-7), 'Neither is negative seven');
})

此处大家定义四个函数:is伊芙n,用来检验多个数字是或不是为奇数,而且大家意在测验那几个函数来确认它不会回去错误答案。
我们第一调用 test(),它创设了几个测量试验案例;第二个参数是多少个将被彰显在结果中的字符串,第叁个参数是归纳大家断主的三个回调函数。
笔者们写了5个断言,全数的都以布尔型的。三个布尔型的预见,期望它的第二个参数为true。第二个参数依然是要来得在结果中的音讯。
这里是你想要获得的,只要您运维测量试验:

图片 1

四、深入学习参谋

上述只简轻巧单的牵线了 qunit.js ,其断言方法还或者有非常多,具体可参照 api 文书档案:

单元测验是一个在您发布你的代码前测验你的代码的非常好的方式。借让你从前不曾写过其余的单元测验,未来是时候初步了!

你恐怕感兴趣的稿子:

  • JQuery团队成立的javascript单元测量检验工具QUnit介绍
  • JavaScript单元测验ABC
  • kmock javascript 单元测验代码
  • Riot.js 急迅的JavaScript单元测量试验框架

本文由新浦京娱乐场官网-301net-新浦京娱乐www.301net发布于301net网站建设,转载请注明出处:程序单元是应用的最小可测试部件

您可能还会对下面的文章感兴趣: