This request has already been treated.

  1. alt
Changes in body
Source | HTML | Preview
@@ -1,114 +1,114 @@
# はじめに
## この記事について
Javascript のテストフレームワーク [mocha](https://mochajs.org/) における 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
```
## 実験で書いたテストコード
-```
+```js
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');
});
```