首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JQuery团队制造的javascript单元测试工具QUnit介绍

2012-10-08 
JQuery团队打造的javascript单元测试工具QUnit介绍!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transit

JQuery团队打造的javascript单元测试工具QUnit介绍

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><script src="http://code.jquery.com/jquery-latest.js"></script><link rel="stylesheet" href="qunit.css" type="text/css" media="screen" /><script type="text/javascript" src="qunit.js" ></script><script>$(document).ready(function() {});</script></head><body><h1 id="qunit-header">QUnit example</h1><h2 id="qunit-banner"></h2><h2 id="qunit-userAgent"></h2><ol id="qunit-tests"></ol></body></html>

注:body中的元素id命名必须依照如下形式,否则无法正常显示,我们可以将要测试的内容放在$(document).ready()中。

我们先来看一个简单的例子

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"?
??????????????????? "http://www.w3.org/TR/html4/loose.dtd%22>
<html>
<head>
? <script src="http://code.jquery.com/jquery-latest.js%22></script>
? <link rel="stylesheet" href="qunit.css" type="text/css" media="screen" />
<script type="text/javascript" src="qunit.js" ></script>

? <script>

????? $(document).ready(function() {
??????????? test("一个基本测试例子", function() {
??????????? ok( true, "测试布尔类型" );
??????????? var value = "hello";
??????????? equals( "hello", value, "我们期望得到hello" );
});

????? });
? </script>
</head>
<body>
? <h1 id="qunit-header">QUnit example</h1>
<h2 id="qunit-banner"></h2>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
</body>
</html>

?

我们再来看一个稍微复杂一点的例子:

<head> <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" href="qunit.css" type="text/css" media="screen" /><script type="text/javascript" src="qunit.js"></script> <script> $(document).ready(function() { test("a basic test example", function() { ok(true, "this test is fine"); var value = "hello"; equals("hello", value, "We expect value to be hello"); }); module("Module A"); test("first test within module", function() { ok(true, "all pass"); }); test("second test within module", function() { ok(true, "all pass"); }); module("Module B"); test("some other test", function() { expect(2); equals(true, false, "failing test"); equals(true, true, "passing test"); }); }); </script> </head><body> <h1 id="qunit-header">QUnit example</h1> <h2 id="qunit-banner"></h2> <h2 id="qunit-userAgent"></h2> <ol id="qunit-tests"></ol></body></html>


得到的结果:

JQuery团队制造的javascript单元测试工具QUnit介绍?

module( name, lifecycle ):是用于对测试模块进行分组,[lifecycle] 用于初始化测试和清理测试。

参考如下实例:

module("module2", {setup: function() {ok(true, "once extra assert per test");this.testData = "foobar";},teardown: function() {ok(true, "and one extra assert after each test");}});test("test with setup and teardown", function() {expect(3);same(this.testData, "foobar");});

异步测试:

asyncTest("异步测试", function() {expect(2);$.getJSON("/Home/JosnDemo", function(result) {equals(result.x, "sss");equals(result.y, "sss");start();});});

"/Home/JosnDemo"是提供json数据的地址,这里需要注意的是必须在写完断言函数后调用start()函数。

Qunit还提供了在测试时的一些更为高级的应用,比如希望在某个测试开始时做些工作等,可以参见http://docs.jquery.com/QUnit#Integration_into_Browser_Automation_Tools

JQuery的很多核心套件是使用Qunit来进行测试的,http://docs.jquery.com/QUnit#Reference_Test_Suites中有很多的例子可以供大家参考。

例子下载

热点排行
Bad Request.