1. 程式人生 > >jasmine-JavaScript單元測試工具

jasmine-JavaScript單元測試工具

文章目錄

Jasmine 是什麼?

jasmine是一個用來編寫Javascript測試的框架,它不依賴於任何其它的javascript框架。它有擁有靈巧而明確的語法可以讓你輕鬆的編寫測試程式碼。
官方地址:
https://jasmine.github.io/

Github 下載
https://github.com/jasmine/jasmine

釋出版本下載
https://github.com/jasmine/jasmine/releases


目前最新版本 3.3.0
釋出版本進入以上頁面下載:
在這裡插入圖片描述

快速瞭解

解壓下載的檔案 jasmine-standalone-3.3.0.zip, 目錄如下
在這裡插入圖片描述
三個目錄夾裡面放的是框架的js和一些css, png的資原始檔,SpecRunner.html是一個demo的例項,直接在瀏覽器中檢視:
在這裡插入圖片描述

快速例項

1. 新建一個目錄  jasmine_unittest

2. 將下載的 zip解壓到 jasmine_unittest, 解壓後的目錄是jasmine, 裡面包含 lib, src等子目錄

  1. 新建js 檔案jasmineHelloWorld.js,內容如下:
describe("My first Jasmine test", function() {
	it("nothing", function() {
		});
});
  1. 新建html檔案 jasmineHelloWorld.html, 內容如下:
<html>
<head>

<link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-3.3.0/jasmine_favicon.png">
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-3.3.0/jasmine.css">

<script type="text/javascript" src="jasmine/lib/jasmine-3.3.0/jasmine.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-3.3.0/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-3.3.0/boot.js"></script>

<script type="text/javascript" src="jasmineHelloWorld.js"></script>
</head>

<body>
</body>
</html>

這裡匯入了jasmine的js和css檔案
5. 在Chrome中開啟jasmineHelloWorld.html, 也可按F12開啟debug模式看一下控制檯。
在這裡插入圖片描述

測試看上去通過了, 但是會提示 “has no expectations.” 並在在控制檯有列印。
如果是Java後端開發人員對這個很容易理解, 類似JUnit中測試類沒有測試方法的提示。

6.增加測試,改動jasmineHelloWorld.js如下:
describe(“My first Jasmine test”, function() {
it(“nothing”, function() {
expect(1).toBe(1);
});
});
expect(1).toBe(1); 字面意思就是1期望等於1 , 看一下頁面效果
在這裡插入圖片描述

  1. 測試失敗效果
    修改 expect(1).toBe(1); 為 expect(1).toBe(2);
    在這裡插入圖片描述

到這,初步的功能應該瞭然了。

語法介紹

在測試上,有一些術語,對比一下,就很容易理解jasmine的語法,包括:
測試集合、測試包: Test Suite,
測試用例: Test Case
對應到jasmine

  1. describe(string, function):可以理解為是一個測試集或者測試包。
    引數string:描述測試包的資訊
    引數function:測試集的具體實現
  2. it(string, function):測試用例(官方稱之為spec)。
    引數string:描述測試用例的資訊
    引數function:測試用例的具體實現

每個測試檔案中可以包含多個describe
每個describe中可以包含多個it
每個it中可以包含多個expect,Jasmine還允許describe的巢狀使用。

細節語法,待進一步介紹

後言

前端的單元測試出現的比較晚,在實際的開發中也不是很多見, 但隨著Web技術的發展及前端框架的興起,前後端分離的開發框架逐步使用,對前端的獨立的、完備的質量要求也就會越來越多。Jasmine這個框架本身的應用也不是很普通,但ExtJS的測試工具Sencha Test就是基於這個框架來進行測試的。