一個JavaScript測試框架(一)
對於JavaScript中的行爲驅動開發(BDD)測試框架,茉莉花不依賴於瀏覽器,文檔對象模型(DOM)或其他JavaScript庫。正由於Jasmine不依賴於任何框架,所以適用於所有的Javascript代碼。
所謂BDD(行爲驅動開發,Behaviour Driven Development),是一種新的敏捷開發方法。BDD是第二代的、由外及內的、基於拉(pull)的、多方利益相關者的(stakeholder)、多種可擴展的、高自動化的敏捷方法。它描述了一個交互循環,可以具有帶有良好定義的輸出(即工作中交付的結果):已測試過的軟件。
BDD與TDD測試驅動開發(Test Driven Development )的主要區別是,BDD使得非程序人員也能參與到測試用例的編寫中來,大大降低了客戶、用戶、項目管理者與開發者之間來回翻譯的成本。所以BDD更加註重業務需求而不是技術。
Jasmine的Github官方主頁:https://github.com/jasmine/jasmine
找到上方的releases,點擊會跳轉到https://github.com/jasmine/jasmine/releases。
下載已發佈的zip包,比如下載當前的最新版本爲:jasmine-standalone-2.5.2.zip
目錄結構
解壓之後,會看到如下結構
- lib存放了運行測試案例所必須的文件,其內包含jasmine-2.2.0文件夾。可以將不同版本的Jasmine放在lib下,以便使用時切換。
jasmine.js:整個框架的核心代碼。
jasmine-html.js:用來展示測試結果的js文件。
boot.js:jasmine框架的的啓動腳本。需要注意的是,這個腳本應該放在jasmine.js之後,自己的js測試代碼之前加載。
jasmine.css:用來美化測試結果
spec存放測試腳本
layerSpec.js:就是針對src文件夾下的Player.js所寫的測試用例。
SpecHelper.js:用來添加自定義的檢驗規則,如果框架本身提供的規則(諸如toBe,toNotBe等)不適用,就可以額外添加自己的規則(在本文件中添加了自定義的規則toBePlaying)。src存放需要測試的js文件。Jasmine提供了一個Example(Player.js,Song.js)。
- SpecRunner.html運行測試用例的環境。它將上面3個文件夾中一些必要的文件都包含了進來。如果你想將自己的測試添加進來的話,那麼就修改相應的路徑。
其中,spec文件夾,src文件夾和SpecRunner.html文件是Jasmine提供的一個完整示例,用瀏覽器打開 SpecRunner.html,即可看到執行的結果。
Demo演示
需要測試的代碼段src.js
function Hello(helloWho){
return "Hello" +" " + helloWho;
}
測試用例test.js
describe("A suite of basic function",function(){
var name;
it("Hello World test",function(){
input="World";
var exp="Hello World";
expect(exp).toEqual(Hello(input));
})
})
測試結果展示頁面
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jasmine Spec Runner v2.5.2</title>
<link rel="shortcut icon" type="image/png" href="lib/jasmine-2.5.2/jasmine_favicon.png">
<link rel="stylesheet" href="lib/jasmine-2.5.2/jasmine.css">
<script src="lib/jasmine-2.5.2/jasmine.js"></script>
<script src="lib/jasmine-2.5.2/jasmine-html.js"></script>
<script src="lib/jasmine-2.5.2/boot.js"></script>
<script src="src/src.js" type="text/javascript"></script>
<script src="spec/test.js" type="text/javascript"></script>
</head>
<body>
</body>
</html>
運行結果