JavaScript也要做測試???
在JavaScript越來越複雜的今日,做好測試,是前端人員越來越需要的生存技能!!!
因此藉這個機會,來分享在JavaScript鼎鼎大名的測試框架Jasmine,透過測試,讓我們的程式碼更穩固。
Jasmine是BDD/TDD框架。
TDD大家可能比較常聽到,就是 Test-driven development,測試驅動開發,這種開發模式,把寫測試提到寫程式的前面,先寫test,讓程式 fail,再把code補上去,讓test通過。
(關於TDD,這裡有一篇文章寫得不錯,大家可參考 http://ithelp.ithome.com.tw/question/10081081)
那什麼又是BDD,Behavior-driven development,翻成中文就是行為驅動開發。把測試改成行為,這是搞什麼名堂呢?
它和 TDD一樣是單元測試的工具,但是TDD通常著重的是我放什麼東西進去,會出來什麼東西,然後作評斷,看是否與預期相等。
而 BDD則跳出這種input、output的資料面向,而是改從程式運作的面向來看待,用程式的行為當成是測試的點,也因此,它用了一套非常接近自然語言的語法,來描述測試的過程,寫測試就好像在寫文件一樣。
這樣說有點抽像,讓我們實際來看一段Jasmine的測試語法:
describe("A spec", function() {
it("is just a function, so it can contain any code", function() {
var foo = 0;
foo += 1;
expect(foo).toEqual(1);
});
it("can have more than one expectation", function() {
var foo = 0;
foo += 1;
expect(foo).toEqual(1);
expect(true).toEqual(true);
});
});
(來源:http://pivotal.github.com/jasmine/)
上面的語法,不用多作解釋,只要英文不要太差的,大概都能知道在測試的是什麼了。
今天就先講到這裡,下回見~
想先知道更多的,可以到Jasmine在Github上的專案去了解一下:
https://github.com/pivotal/jasmine/wiki/