Node.jsコードのテスト「jest」


Node.jsのFacebook製のテストツール「jest」の紹介です。

🎂 インストール手順

プロジェクト直下で次のコマンドを実行して必要なライブラリを追加します。

yarn add --dev jest babel-preset-es2015 babel-jest

npm install --save-dev jest babel-preset-es2015 babel-jest

🎉 設定手順

package.jsonjestを動かすための設定を追加します。

{
"scripts": {
"test": "jest"
}
}

.babelrcにBabel用の設定を追加します。

{
"presets": ["es2015"]
}

🐹 テストフォルダ

./__tests__xxx_spec.jsを追加するとテストとして認識されます。

🐡 テスト構文

基本的なテスト構文はつぎのようになります。

import Counter

describe('Counter', () => {
describe('increment', () => {
let counter;
beforeEach(() => { // テストの前に毎回実施
counter = new Counter(1);
});

it('increments', () => {
counter.increment();
expect(counter.number).toBe(2);
});
});
});

👽 基本的なMatchers

// === での比較
expect(2 + 2).toBe(4);

// ArrayやObjectの全てのフィールドをチェック
expect({ one: 1, two: 2 }).toEqual({ one: 1, two: 2 });

// 値が一致しないことのチェック
expect(1).not.toBe(0);

// nullのチェック
expect(hoge).toBeNull();

// undefinedのチェック
expect(hoge).toBeUndefined();

// 値が定義されていることのチェック
expect(hoge).toBeDefined();

// trueであることのチェック
expect(hoge).toBeTruthy();

// falseであることのチェック
expect(hoge).toBeTruthy();

// 文字列の正規表現でのチェック
expect('Christoph').toMatch(/stop/);

// Arrayで値を含むことのチェック
expect(shoppingList).toContain('beer');

// エラーが出力されることのチェック
expect(compileAndroidCode).toThrow('you are using the wrong JDK');

🐰 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍