JavaScript的单元测试工具
作者:网络转载 发布时间:[ 2015/1/26 15:32:00 ] 推荐标签:JavaScript 单元测试工具
清单13. 填写了测试方法的测试用例
suite.add(new Y.Test.Case({
name: "Temperature conversion",
setUp : function () {
this.celsius1 = 20;
this.celsius2 = 30;
this.fahrenheit1 = 68;
this.fahrenheit2 = 86;
},
testConversionCtoF: function () {
Y.Assert.areEqual(this.fahrenheit1,
convertFromCelsiusToFahrenheit(this.celsius1));
Y.Assert.areEqual(this.fahrenheit2,
convertFromCelsiusToFahrenheit(this.celsius2));
},
testConversionFtoC: function () {
Y.Assert.areEqual(this.celsius1,
convertFromFahrenheitToCelsius(this.fahrenheit1));
Y.Assert.areEqual(this.celsius2,
convertFromFahrenheitToCelsius(this.fahrenheit2));
}
}));
你可能已经注意到了在清单13中:
1. setUp()方法是可用的。YUI在测试用例和测试套件层面都提供了setUp()和tearDown()方法。
2. 测试方法的名称以test这一词作为开始,他们包含有断言。
3. 该例子使用的是Y.Assert.areEqual()这一断言类型,其类似于QUnit中的equal()函数。
4. YUI Test提供了多种多样的断言方法,比如说:
4.1. Y.Assert.areSame(),该断言相当于QUnit中的strictEqual()。
4.2. 数据类型断言(Y.Assert.isArray(), Y.Assert.isBoolean(), Y.Assert.isNumber()等)。
4.3. 特殊值的断言(Y.Assert.isFalse(), Y.Assert.isNaN(), Y.Assert.isNull()等)。
若要发起YUI中的测试,使用Y.Test.Runner对象。你需要把套件或是测试用例添加到这一对象中,然后调用run()方法来运行测试。清单14展示了如何运行清单13中创建的测试。
清单14. 运行YUI测试
Y.Test.Runner.add(suite); Y.Test.Runner.run();
默认情况下,结果被输出在浏览器的控制台中(如果你的浏览器支持控制台的话),一种更好的做法是使用Yahoo! Console组件来输出结果。若要使用Yahoo! Console组件,你需要采用Y.Console的构造函数,并把该控制台和HTML运行器的一个DOM元素绑在一起,如清单15所示。
清单15. Yahoo! Console
var console = new Y.Console({
verbose: true,
newestOnTop: false,
width: "600px"
});
console.render('#testLogger');
清单15说明了如何使用几个参数来配置控制台,该控制台会在一个其id等于testLogger的DOM元素内部进行渲染。
HTML运行器需要更新,添加控制台所引用的DOM元素,如清单16所示。
清单16. HTML运行器更新为支持Yahoo! Console
<body class="yui3-skin-sam"> <div id="testLogger">< /div> </body>
该例子设置< body>的class,class的名称为yui3-skin-sam,该class负责定义控制台的皮肤。
图3显示的是运行测试之后的控制台
图3. YUI Test的结果

JSTestDriver带来的轻松测试
使用功能强大的JSTestDriver(JSTD)工具,你可以通过命令行来在多种浏览器中运行JavaScript。与JSTD一起发布的有一个JAR 文件,该文件让你启动服务器,捕获一个或多个浏览器,以及在浏览器中运行测试。你不需要像前面讨论的那两个框架那样,用到HTML运行器,不过要用到一个配置文件。清单17给出了一个配置文件。
清单17. 配置文件(jsTestDriver.conf)
server: http://localhost:4224 load: - js/src/*.js test: - js/test/*.js
该配置文件是使用YAML编写的,该语言为配置文件提供了一种很好的格式。配置文件包含了一些信息:要启动的服务器,源代码和测试文件所在位置等。

sales@spasvo.com