你可能已經注意到了在清單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編寫的,該語言為配置文件提供了一種很好的格式。配置文件包含了一些信息:要啟動的服務器,源代碼和測試文件所在位置等。
若要使用JSTD執行測試:
1. 啟動測試服務器。通過命令行,進入到存放jsTestDriver.jar的文件夾,然后運行下面的命令:
1.java -jar JsTestDriver-1.3.3d.jar -port 4224
清單17中指定的端口應該和配置文件中指定的是一樣的。默認情況下,JSTD會在JAR文件駐留的同一目錄下查找jsTestDriver.conf文件。
2. 復制和粘貼http://localhost:4224/capture這一URL到用于測試的瀏覽器中,以此來在服務器中注冊一個或多個瀏覽器。
測試你在前面例子中使用的同一源代碼(清單5),不過這次使用的是JSTD語法。清單18展示了如何轉換清單10中的QUnit測試用例和清單14(譯者注:參照上下文,疑為清單13)中的YUI Test測試用例。
原文轉自:http://www.uml.org.cn/Test/201301152.asp