Nodejs Mocha測試學習

來源:互聯網
上載者:User

標籤:lan   under   出錯   png   rgs   支援   技術   多個   用例   

參考大神阮一峰的文章《測試架構 Mocha 執行個體教程》

目前在使用Nodejs,但寫完的程式很容易出錯,那怎麼辦?需要引入單元測試去做基礎的測試

目前Nodejs用來做單元測試的工具接觸的不多,現在只接觸到Mocha,它是用來做單元測試的最好的工具之一。

關於Mocha的基礎教程,可以看一下阮一峰老師的部落格:測試架構 Mocha 執行個體教程

=》基本概念:

describe():測試區塊,一個測試區塊應該包含一個或多個測試區塊,測試區塊也是可以多層嵌套的

it():測試案例,一個測試區塊中應該包含一個或多個測試案例

=》測試案例鉤子:

before():在本區塊所有測試案例執行之前執行

after():在本區塊所有測試案例執行之後執行

beforeEach():在本區塊每個測試案例之前執行

afterEach():在本區塊每個測試案例之後執行

=》斷言庫:

chai:Mocha本身沒有斷言庫,chai可以作為Mocha的斷言庫

chai-as-promise:目前的方法很多都是Promise的方式,這個斷言庫可以支援到Promise

=》測試案例管理:

only():測試區塊和測試案例都支援only方法,如果某個測試區塊或測試案例調用了only方法,則在運行單元測試時只運行該測試區塊或測試案例

skip():測試區塊和測試案例都支援skip方法,如果某個測試區塊或測試案例調用了skip方法,則在支行單元測試時會跳過該測試區塊或測試案例

only()和skip()共存的時候,only()會把skip()的作用給忽略掉

=》非同步測試:

在測試方法非同步完成後,調用done()方法,一個it測試執行個體中只能有一個done()方法

=》重新運行執行個體

在運行測試執行個體時,我們可以讓一個執行個體重新執行一定的次數,在describe()和it()中加入this.retries(4);,即可執行4次,但是Mocha不推薦這樣的做法

=》動太產生測試案例

var assert = require(‘chai‘).assert;function add() {    return Array.prototype.slice.call(arguments).reduce(function (prev, curr) {        return prev + curr;    }, 0);}describe(‘add()‘, function () {    var tests = [        { args: [1, 2], expected: 3 },        { args: [1, 2, 3], expected: 6 }    ];    tests.forEach(function (test) {        it(‘test adds ‘ + test.args.length + ‘ args‘, function () {            var res = add.apply(null, test.args);            assert.equal(res, test.expected);        });    });});

 

Nodejs Mocha測試學習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.