自動化單元測試 -- karma

前言

//在命令行終端輸入下面的命令即可使用 cnpm 來替代 npm 裝包了
npm install -g cnpm --registry=https://registry.npm.taobao.org

karma npmjs 網(wǎng)址
A simple tool that allows you to execute JavaScript code in multiple real browsers.
The main purpose of Karma is to make your test-driven development easy, fast, and fun.
一個簡單的工具,允許你在多個真正的瀏覽器中執(zhí)行JavaScript代碼。
karma 的主要目的是讓你的測試驅動開發(fā)簡單缚窿、快速和有趣。

Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
Jasmine 是一個用于測試JavaScript代碼的行為驅動開發(fā)框架容达。它不依賴于任何其他JavaScript框架衙猪。它不需要DOM。它有一個干凈的哑芹、明顯的語法炎辨,這樣您就可以輕松地編寫測試。

PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
PhantomJS是無頭的WebKit腳本與JavaScript API聪姿。它支持各種Web標準:DOM處理碴萧、CSS選擇器、JSON末购、畫布和SVG破喻。-- 百度翻譯
簡單點來說他就是一個無頭(無界面)的瀏覽器,除了沒有界面與常用的谷歌瀏覽器之類的基本功能一樣盟榴。

實例 Demo

  1. 以管理員身份運行命令行終端軟件低缩,我這里是 windows 系統(tǒng),使用的是下載的 cmder (較好用)曹货,當然你也可以選擇 cmd.exe
  2. 接著在命令行終端中輸入命令咆繁,溫馨提示:終端不同可能會導致命令不同,這里我列舉的只是 cmder 終端上的命令
//進入桌面
cd Desktop
//創(chuàng)建項目文件夾
mkdir  karmatest
//進入文件夾中
cd karmatest

image.png
  1. 在終端中初始化項目
//項目初始化  之后會有一系列的讓你輸入項目信息的提示一直回車就可以了
npm init
image.png
  1. 初始化之后找到桌面的 karmatest 文件夾并在編輯器中打開顶籽,這里我使用的是 sublime text 玩般,剛才在命令行中將項目初始化后,項目中會自動新增一個 package.json 項目配置文件
image.png
  1. 接著在項目文件夾中新建目錄結構如下

src -> index.js
這個 spce 后綴是必須要加的礼饱,這樣 karma 才能正確的識別
test -> index.spce.js

image.png

  1. 在編輯器 sublime text 中編輯文件
    index.js
//給全局增加一個 add 方法
window.add = function (num) {
    return num + 1;
}

index.spce.js

//語法詳情參照 https://jasmine.github.io/
describe("簡單的測試加法", function() {
  it("簡單的測試加法", function() {
    expect(window.add(1)).toBe(2);
  });
});
  1. 在命令行中輸入命令
//全局安裝 karma 坏为,第一次安裝之后就不用再安裝了究驴,可以直接寫下面的命令
npm install -g karma
//在當前項目中安裝 karma
npm install karma --save
//karma 初始化  初始化成功之后會在項目中新建一個 karma.conf.js 文件
karma init
//下面是提示語中需要 使用鍵盤的上下鍵去選擇的選項結果  選中之后直接回車即可
jasmine
no
PhantomJS
回車
回車
回車
no
  1. 在編輯器 sublime 中編輯上面初始化時在項目中生成的 karma.conf.js 文件
//17~18行
    files: [
        './src/*.js',
        './test/*.spce.js'
    ],
//64行
//這個設置為 true 會在執(zhí)行之后自動退出
singleRun: true,
  1. 在命令行中輸入命令
//安裝 karma 使用的 jasmine 斷言庫
npm install jasmine --save
//安裝 karma 使用的 phantomjs 無頭瀏覽器
npm install phantomjs --save
  • 裝完之后可查看項目中的 package.json 文件,可以確定上面裝的包確實安裝成功了
image.png
  1. 接著在命令行中運行 karma
karma start
  • 命令行中輸出如下證明執(zhí)行成功了
image.png
  1. 這個時候可以故意修改 index.spce.js 文件將其中之前寫的結果 2 修改為 3
image.png
  • 再在命令行中運行 karma
karma start
  • 命令行會輸出如下:報了一個錯誤匀伏,而且把錯誤的具體位置也輸出了
image.png
  • 將修改的 3 再改回來 運行 karma
karma start
  • 也還是執(zhí)行成功了洒忧,整個 Demo 到此結束
image.png

總結

  • 這只是一個很基本的單元測試的實例,希望自己可以走前端邁向全棧的路上够颠,越走越遠熙侍。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市履磨,隨后出現(xiàn)的幾起案子蛉抓,更是在濱河造成了極大的恐慌,老刑警劉巖剃诅,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷送,死亡現(xiàn)場離奇詭異,居然都是意外死亡矛辕,警方通過查閱死者的電腦和手機笑跛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來聊品,“玉大人飞蹂,你說我怎么就攤上這事⊙钆伲” “怎么了晤柄?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵擦剑,是天一觀的道長妖胀。 經(jīng)常有香客問我,道長惠勒,這世上最難降的妖魔是什么赚抡? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮纠屋,結果婚禮上涂臣,老公的妹妹穿的比我還像新娘。我一直安慰自己售担,他們只是感情好赁遗,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著族铆,像睡著了一般岩四。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上哥攘,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天剖煌,我揣著相機與錄音材鹦,去河邊找鬼。 笑死耕姊,一個胖子當著我的面吹牛桶唐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播茉兰,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼尤泽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了邦邦?” 一聲冷哼從身側響起安吁,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎燃辖,沒想到半個月后鬼店,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡黔龟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年妇智,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片氏身。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡巍棱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛋欣,到底是詐尸還是另有隱情航徙,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布陷虎,位于F島的核電站到踏,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏尚猿。R本人自食惡果不足惜窝稿,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凿掂。 院中可真熱鬧伴榔,春花似錦、人聲如沸庄萎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糠涛。三九已至援奢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脱羡,已是汗流浹背萝究。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工免都, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帆竹。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓绕娘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親栽连。 傳聞我的和親對象是個殘疾皇子险领,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容