Edited at

mocha における describe it before beforeEach after afterEach の実行順序

More than 1 year has passed since last update.


はじめに


この記事について

Javascript のテストフレームワーク mocha における describe it before beforeEach after afterEach の実行順序について調べてみました。


環境


  • Windows 7 Professional x86

  • mocha 5.0.1


結果


5行で


  • describe は上から順番に実行される

  • it は上から順番に実行される

  • beforeEach, afterEach は 各 it の前後 で実行される

  • before は describe の最初に一度だけ 実行される

  • after は describe の最後に一度だけ 実行される


実行結果

$ mocha test.js

describe(1)-top
describe(1)-bottom
describe(2)-top
describe(2)-bottom

DESCRIBE-1
describe(1)-before
describe(1)-beforeEach
describe(1)-it(1)
√ テスト1
describe(1)-afterEach
describe(1)-beforeEach
describe(1)-it(2)
√ テスト2
describe(1)-afterEach
describe(1)-after

DESCRIBE-2
describe(2)-before
describe(2)-beforeEach
describe(2)-it(1)
√ テスト1
describe(2)-afterEach
describe(2)-beforeEach
describe(2)-it(2)
√ テスト2
describe(2)-afterEach
describe(2)-after


実験で書いたテストコード

describe('DESCRIBE-1', function () {

console.log('describe(1)-top');

before(function(){
console.log('describe(1)-before');
});

beforeEach(function(){
console.log('describe(1)-beforeEach');
});

after(function(){
console.log('describe(1)-after');
});

afterEach(function(){
console.log('describe(1)-afterEach');
});

it('テスト1', function(){
console.log('describe(1)-it(1)');
});

it('テスト2', function(){
console.log('describe(1)-it(2)');
});

console.log('describe(1)-bottom');
});

describe('DESCRIBE-2', function () {
console.log('describe(2)-top');

before(function(){
console.log('describe(2)-before');
});

beforeEach(function(){
console.log('describe(2)-beforeEach');
});

after(function(){
console.log('describe(2)-after');
});

afterEach(function(){
console.log('describe(2)-afterEach');
});

it('テスト1', function(){
console.log('describe(2)-it(1)');
});

it('テスト2', function(){
console.log('describe(2)-it(2)');
});

console.log('describe(2)-bottom');
});