Jasmine是一個用來編寫avascript測試的框架,它不依賴於任何其它的javascript框架,也不需要對DOM的依賴。它有擁有靈巧而明確的語法可以讓你輕松的編寫測試代碼。如下代碼展現的是一個最基本的Jasmine使用。
describe("Jasmine", function() {
it("makes testing JavaScript awesome!", function() {
expect(yourCode).toBeLotsBetter();
});
});
獲取Jasmine
Jasmine被托管在GitHub上,您可以通過https://github.com/pivotal/jasmine 獲取Jasmine的相關代碼。
如果您懶得下載大量代碼,僅僅想看看Jasmine的效果,這個在線的可以滿足您的需要 http://tryjasmine.com/ ,您也可以在這里測試本文中的大部分代碼。
Jasmine背景
在如今浩瀚的Javascript代碼庫中已經有了很多的Javascript測試框架可以供我們直接使用,那我們為什么還要編寫Jasmine呢?
因為在現如今已存在的測試框架中幾乎還沒有一個能滿足我們工作需要的,比如很多只能在瀏覽器中工作,大多數不支持對異步代碼進行測試比如(Event Callbacks)事件回調,還有一些框架的語法很難被Javascript開發者或是IDEs理解。
所以我們決定從頭開始!
走進Jasmine
Jasmine是我們夢寐以求的Javascript測試框架,它深受ScrewUnit,JSSpec,JSpec和RSpec影響,並充分借鑒其中的優秀部分。
Jasmine的設計牢牢遵循如下幾個原則,我們相信它是一個優秀的Javascript測試框架。
- 不應該被依賴在任何的(Browser)瀏覽器、(Framework)框架、(Platform)平台,或是(Host Language)宿主語言中。
- 應該具有符合以往編程習慣和不會讓人感覺詫異的語法。
- 可以在任何地方工作,包括瀏覽器,服務器,手機等等
- 不應該對您的應用程序具有侵入性(比如,搞亂你的全局命名空間).
- 應該與IDEs緊密結合(比如,測試代碼應該通過(static analysis)靜態分析).
我們編寫Jasmine的目標:
- 它應該鼓勵人們進行良好的測試實踐
- 它應該可以輕松簡單的集成到持續構建系統中
- 它應該是簡單的開始