javascript
玩转Javascript 给JS写测试
? 給js寫測試已經(jīng)不是什么稀奇的事情了,最近項(xiàng)目里用了jasmine和JsTestDriver兩種js測試框架。JsTestDriver易于與持續(xù)構(gòu)建系統(tǒng)相集成并能夠在多個(gè)瀏覽器上運(yùn)行測試輕松實(shí)現(xiàn)TDD風(fēng)格的開發(fā)。當(dāng)在項(xiàng)目中配置好JsTestDriver以后,如同junit測試java文件一般,JsTestDriver可以直接通過運(yùn)行js文件來進(jìn)行單元測試。JsTestDriver框架本身就是JAVA的jar包,需要在本地運(yùn)行并監(jiān)聽一個(gè)端口。JsTestDriver是xUnit測試框架領(lǐng)域的一個(gè)比較新的成員,它最初起源于Google。本文將介紹如何搭建一個(gè)JsTestDriver測試框架。
? 首先簡單介紹一下JsTestDriver的特點(diǎn):
優(yōu)點(diǎn):
1.可以一次測試多個(gè)瀏覽器,使用方法是在啟動服務(wù)時(shí)可以將多個(gè)瀏覽器的路徑作為參數(shù)傳進(jìn)去。
2.測試運(yùn)行得很快,因?yàn)椴恍枰獙⒔Y(jié)果添加到DOM中呈現(xiàn)出來,它們能夠同時(shí)在任意多的瀏覽器中運(yùn)行,未修改的文件瀏覽器會從緩存提取。
3.不需要HTML配件文件,僅僅只需提供一個(gè)或多個(gè)腳本和測試腳本,測試運(yùn)行器運(yùn)行時(shí)會創(chuàng)建一個(gè)空文件。
4.支持其它測試框架,可以測試其它測試框架寫的測試代碼,比如有對應(yīng)的插件可以將QUnit和Jasmine測試代碼轉(zhuǎn)換成JsTestDriver的測試代碼。
缺點(diǎn):
不能在瀏覽器中測試,只能通過自動化工具或控制臺運(yùn)行。生成的結(jié)果不夠直觀。安裝使用稍微有點(diǎn)麻煩,依賴于JAVA環(huán)境
?
搭建步奏:
一.編寫測試test.js
1.給一個(gè)測試js文件寫一個(gè)TestCase用來聲明一個(gè)測試對象
2.寫setUp,初始化被測對象
3.編寫測試函數(shù),js測試驅(qū)動程序提供了一個(gè)聲明,讓測試更容易閱讀和維護(hù)方式向測試添加HTML。把有效的HTML在doc注釋和js測試驅(qū)動程序?qū)⑾鄳?yīng)的DOM到一個(gè)變量,或者將其添加到文檔的身體。
?
HtmlDeclaredInTest = TestCase("HtmlDeclaredInTest");HtmlDeclaredInTest.prototype.setUp = function() {//test utils object contains convenience functionsthis.testUtils = new myapp.Greeter(); };HtmlDeclaredInTest.prototype.testVariableHtml = function() {/*:DOC mainDiv = <div id='main'><div class='text'>Hello word.</div></div> */var child = this.testUtils.findFirstDiv(this.mainDiv);assertEquals("text", child.className);assertEquals("Hello word.", child.innerHTML); };?
二.編寫源文件source.js
1.寫一個(gè)讓測試通過的源代碼
2.運(yùn)行測試
myapp = {};myapp.Greeter = function() { };myapp.Greeter.prototype.findFirstDiv = function(element) {var result, child ;for ( i = 0; i < element.childNodes.length; i++) {child = element.childNodes[i];if (child.nodeType == 1 && child.tagName=='DIV')result = child;}return result; };三.搭建運(yùn)行環(huán)境
1.在google下載JsTestDriver唯一需要的一個(gè)集成jar包——JsTestDriver.jar
?
2.添加配置文件jsTestDriver.jstd,YAML格式文件,或者默認(rèn)文件為jsTestDriver.conf與jar包同一目錄下。
server: http://localhost:9876 load:- src/*.js- src-test/*.js3.啟動服務(wù)器
Java -jar JsTestDriver-1.3.5.jar --port 9876 --browser **/**/firefox.exe訪問?http://localhost:9876/capture
4.運(yùn)行測試
java -jar JsTestDriver-1.3.5.jar --tests all --config **/**/jsTestDriver.jstd5.結(jié)果
Total 2 tests (Passed: 2; Fails: 0; Errors: 0) (0.00 ms)Safari 528.16: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (0.00 ms)Firefox 1.9.0.10: Run 1 tests (Passed: 1; Fails: 0; Errors 0) (0.00 ms)?
轉(zhuǎn)載于:https://www.cnblogs.com/Alex--Yang/p/3417163.html
總結(jié)
以上是生活随笔為你收集整理的玩转Javascript 给JS写测试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用wordpress制作网站的总结
- 下一篇: gradle idea java ssm