1. 程式人生 > >使用Mocha進行Node.js的單元測試

使用Mocha進行Node.js的單元測試

我要寫測試

之前的Java開發中,使用JUnit進行單元測試的感覺棒棒噠,用Node.js寫了一些功能之後深覺沒有單元測試是一件非常糟糕的事情(開發效率降低,同時代碼質量下降),於是學習下單元測試相關的東西,這裡使用Mocha進行。

Mocha簡介

Mocha is a feature-rich JavaScript test framework running on Node.js and the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases. Hosted on GitHub.

先貼一段來自官網的簡介,Mocha是一個功能非常豐富的JavaScript單元測試框架,可以跑在Node.js上面,也可以跑在瀏覽器裡面,同時對於非同步的測試也很在行。
這裡只打算寫一些進行Node.js單元測試的東西。

安裝

npm install -g mocha

用程式碼說話

簡單的栗子

// 目錄:/tests/test.js
var assert =  require('assert');
describe('Array', function() {
  describe('#indexOf()', function() {
    it('should return -1 when the value is not present'
, function() { [1,2,3].indexOf(5).should.equal(-1); [1,2,3].indexOf(0).should.equal(-1); }); }); });

首先是一個來自官網的例子,在tests目錄下直接執行‘Mocha’,返回結果

  Array
    #indexOf()
      √ should return -1 when the value is not present

可以看到,describe接收的第一個引數是對於後面function的描述,描述是自行指定的,用來描述進行的測試。describe可以巢狀,內部執行的it,也是需要一個描述和function,it的function是執行的測試程式碼。
assert是自帶的斷言庫,這裡是最簡單的斷言,也可以使用其他的諸如should.js,expect.js,chai。

非同步栗子

// 這裡用來測試本機上的/login介面
var request = require('request');
describe('auth', function () {
    describe('#login', function () {
        it('should be ok', function (done) {
            var data = {
                'userAccount': '[email protected]',
                'password': '123'
            };
            request.post('http://localhost:8080/login', {form: data}, function (err, httpResponse, body) {
                if (err) {
                    throw err;
                }
                if (body === 'success') {
                    done();
                } else {
                    throw new Error();
                }
            });
        });
    });
});

it的function接收一個done引數,這是一個回撥函式(callback),如果測試通過,呼叫這個函式就可以啦,如果不通過,那麼扔一個異常出來,這樣就把測試通過與沒有通過分開了。(就是這麼簡單)
對於需要登入才能訪問的介面,請求的時候帶上cookie就可以啦。

相關推薦

使用Mocha進行Node.js單元測試

我要寫測試 之前的Java開發中,使用JUnit進行單元測試的感覺棒棒噠,用Node.js寫了一些功能之後深覺沒有單元測試是一件非常糟糕的事情(開發效率降低,同時代碼質量下降),於是學習下單元測試相關的東西,這裡使用Mocha進行。 Mocha簡介

玩轉Node.js單元測試

程式碼部署之前,進行一定的單元測試是十分必要的,這樣能夠有效並且持續保證程式碼質量。而實踐表明,高質量的單元測試還可以幫助我們完善自己的程式碼。這篇部落格將通過一些簡單的測試案例,介紹幾款Node.js測試模組: Mocha和Should,SuperTest。本文側重於解釋原理,各個模組的詳細使用案例以後單獨

WebStorm整合Mocha + Chai進行js單元測試

介紹 Mocha(發音"摩卡")誕生於2011年,是現在最流行的JavaScript測試框架之一,在瀏覽器和Node環境都可以使用。 所謂"測試框架",就是執行測試的工具。通過它,可以為JavaScript應用新增測試,從而保證程式碼的質量。準備工作 1.首先需要安裝Nod

前端js單元測試 使用mocha、chai、sinon,karma

測試框架 模擬 框架 斷言 處理 DC pan exp HA karma(因果報應) 提供在瀏覽器上測試 可以同時跑在多個瀏覽器下 mocha測試框架 其他測試框架還有Jasmine chai斷言庫 expect = chai.expect sinon 測試替身(偽

Vue.js單元測試

Vue.js——測試 這裡採用的是Vue官方工具(Vue-CLI)搭建出來的專案,在這個搭建工具中推薦的兩種測試分別是 端到端的測試 E2E 單元測試 Unit Test 端到端的測試(E2E) E2E或者端到端(End-To-End)或者UI測試是一種測試方法,它用來測試一個應用從頭到

Vue.js 單元測試

單元測試 配置和工具 任何相容基於模組的構建系統都可以正常使用,但如果你需要一個具體的建議,可以使用 Karma 進行自動化測試。它有很多社群版的外掛,包括對 Webpack 和 Browserify 的支援。更多詳細的安裝步驟,請

React-如何進行元件的單元測試

什麼是單元測試 一般測試分成幾個型別:單元測試、整合測試、功能測試。整合測試和功能測試不贅述。單元測試是用來對一個模組、一個函式或者一個類來進行正確性檢驗的測試工作,這裡的單元是程式工作的最小工作單位。單元測試應該僅僅依賴輸入,不依賴多餘的環境,如果你的單元測

Jquery/js單元測試中實現Mock(js實現mock介面)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/

node】----mocha單元測試框架-----【格爾尼卡ぃ】

ins number ber moc tutorial ride 對象 單元測試框架 cal 一、mocha簡介 單元測試是用來對一個模塊、一個函數、或者一個類來進行正確性的檢測工作 特點: 既可以測試簡單的JavaScript函數,又可以測試異步代碼,

如何對第一個Vue.js元件進行單元測試 (上)

  首先,為什麼要單元測試元件?   單元測試是持續整合的關鍵。通過專注於小的、獨立的實體,確保單元測試始終按預期執行,使程式碼更加可靠,你可以放心地迭代你的專案而不必擔壞事兒。   單元測試不僅限於指令碼。可以獨立測試的任何東西都是可單元測試的,只要你遵循一些好的做法。這些例項包括單一責任、可預測性和鬆

如何對第一個Vue.js元件進行單元測試 (下)

我們的首次測試 讓我們來寫首個測試。我們首先需要使用shallowMount手動掛載我們的元件,並將其儲存在我們將執行斷言的變數中。我們還可以通過propsData屬性傳遞道具作為物件。 已安裝的元件是一個物件,它有一些實用方法: 然後,我們可以寫第一個斷言: 讓我們來

如何對第一個Vue.js組件進行單元測試 (下)

發生 清理 定位元素 after 斷言 www. array 12c 良好的 我們的首次測試 讓我們來寫首個測試。我們首先需要使用shallowMount手動掛載我們的組件,並將其存儲在我們將執行斷言的變量中。我們還可以通過propsData屬性傳遞道具作為對象。

Node.js RESTful API和Express單元測試

本文主要研究Node.js RESTful API和Express框架的單元測試。 關於Mocha和Istanbul的詳細使用,請參考:使用Mocha和Istanbul實現Node.js單元測試和覆蓋率 Github: https://github.com/prufeng/aut

淺談單元測試mocha + should.js

為什麼要進行單元測試? 測試常常是程式設計師十分厭倦的一個活動。測試能給我們帶來什麼?瞭解這些是非常重要的,測試不可能保證一個程式是完全正確的,但是測試卻可以增強我們對程式完整的信心,測試可以讓我們相信程式做了我麼期望它做的事情。測試能夠使我們儘早的發現程式的 bug

前端新手使用karma+mocha+chai+sinon 進行angularjs 單元測試

這裡只談如何搭建環境。 選型:在jasmine 和 mocha+chai中間比較了一下,根據專案需要選擇了後者。 安裝依賴包和環境 直接執行下列命令安裝或在專案目錄下 執行npm install(package.json已經配置好了)、 npm

Vue-cli 僅使用mocha進行單元測試

vue-cli+mocha單元測試 什麼是mocha 我的理解就是,mocha是一個測試框架,它提供給你很多斷言介面,你可以使用它的介面寫一些測試檔案,來看看輸出是否符合預期。 mocha有一些很有用的輔助函式庫 比如util.js,vue/test.js這些網

node mocha 單元測試debug

使用mocha 進行單元測試的時候不通過,找不到原因需要除錯,操作方法如下 1. 全域性安裝 node-inspector 2. 執行 mocha test.js –debug-brk(debug-brk將斷點到第一行程式碼) 3. 執行 node-

Vue.js學習系列六——Vue單元測試Karma+Mocha學習筆記

在使用vue-cli建立專案的時候,會提示要不要安裝單元測試和e2e測試。既然官方推薦我們使用這兩個測試框架,那麼我們就動手去學習實踐一下他們吧。 簡介 Karma Karma是一個基於Node.js的JavaScript測試執行過程管理工

使用Jasmine和karma對傳統js進行單元測試

當你拿到十五年前的一堆javascript的程式碼,你如何對這堆javascript程式碼寫單元測試呢?於是就有了這篇文章。 注意:**不需要裝任何現代化js框架,包括angular,react,vue之類的,都不需要裝!!!** 1. 先要安裝[nodejs](https://nodejs.org/zh

NUnit.Framework在VS2015中如何進行單元測試

開放 ron 微軟 strong 擴展 分享 方案 mar 項目 微軟在VS2015中加入了自動化生成測試功能, 在需要測試的源文件的公共方法中右鍵既可以創建單元測試。 不過需要註意的是,要在公共方法中創建,否則會提示這個錯誤 如下是自動化單元測試界面,可以發