Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

JavaScriptのテストコードをNode.js+Jasmineで実行してみよう

JavaScriptでテストを書こう! 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/02/27 14:00

 本連載は、テストコードをこれから書こうと考えているJavaScript技術者を対象に、テストコードの意義から、テスト駆動開発、JavaScriptでのテストコードの書き方、継続的インテグレーションなどテスト全般にわたって解説します。また、原理原則だけでなくWhyから説明し、チームメンバーを巻き込みながら開発現場に活かせる考え方を総合的に解説します。第3回目の本稿は、Node.jsでのテストの実行方法を、JasmineというJavaScriptテスティングフレームワークを使って説明します。前半はJasmineの基礎、後半はテスト駆動開発の流れに沿って、Jasmineでテストの書き方を紹介します。

目次

対象読者

  • JavaScriptの基本をある程度理解している方
  • テストコードをこれから書こうと考えている方

Jasmineとは

 Jasmineとは、JavaScriptのテスティングフレームワークです。Mochaなどのテスティングフレームワークとは違い、値を評価するためのアサーションモジュールも内包されています。また、CoffeeScriptでの記述も可能です。

 Jasmineは振る舞い駆動(BDD)の形式でテストを記述します。BDDは、作成する機能に期待する「振る舞い」を文章で記述していきます。言い換えると、顧客が望んでいるであろう「要求仕様」に近い形でテストを表現しながら、テストと実装を記述していく手法です。

 リスト01は、Jasmineで記述した基本的なテストコードです。このコードを文章として日本語に直訳すると「【処理結果】が【期待する値】と同じでないと予測(expect)する」です。単純に【処理結果】と【期待する値】が一致していないということだけでなく、テストコードを読むと、その評価の内容を振る舞いとして文章のように読むことができます。Jasmineでは、expectメソッドの引数がメソッドなどの処理結果、一番右側の評価を行うメソッドの引数は期待する値を入れます。

リスト01:評価メソッドの例
expect(処理結果).not.toEqual(期待する値);

 Jasmineはブラウザで動作するテスティングフレームワークとして開発されましたが、Node.jsで使用できるjasmine-nodeも公開されています。構文は両方とも同じものが使用できます。本稿では、jasmine-nodeの使用方法を解説します。

 Jasmineのマニュアルは、以下のURLにあります。

テストコードを実行する準備

 それでは、Node.jsでJasmineを使ってテストコードを実行するための準備を行います。

Node.jsとJasmineのインストール方法

 Node.jsをインストールしてみましょう。まずは、以下のサイトからNode.jsインストール実行ファイルをダウンロードし、実行します。ここでは、Windowsでのインストール方法を説明します。

Node.jsのインストール
Node.jsのインストール

 次に、インストールが完了したかどうか、確認しましょう。コマンドプロンプトを起動し、以下のコマンドを実行してみてください。nodeコマンドのヘルプを参照してみます。以下のように表示されていれば成功です。

リスト02:nodeコマンドの実行
node -h
Node.jsインストール結果の確認
Node.jsインストール結果の確認

 続いて、テスティングフレームワークであるJasmineのインストールを行います。Node.js版はjasmine-nodeというモジュールをインストールします。Node.jsのモジュールは、npmコマンドを使ってインストールを行います。npmは、Node.js向けパッケージ管理ツールです。多くのNode.js向けのオープンソースのモジュールが登録されています。

 以下のコマンドを実行してください。必要なモジュールが自動的にダウンロードされ、Jasmineのインストールが完了します。「-g」オプションは、グローバルインストールという意味で、npmのインストール場所にパッケージがインストールされます。

リスト03:jasmine-nodeのインストール
npm install -g jasmine-node

 Jasmineのインストールが完了したかどうかを確認しましょう。nodeコマンドと同様、Jasmineのヘルプを参照してみます。以下のように表示されれば成功です。

リスト04:Jasmineコマンドの実行
jasmine-node -h
jasmine-nodeのインストール結果の確認
jasmine-nodeのインストール結果の確認

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 安西剛 (ヤスニシ ツヨシ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:JavaScriptでテストを書こう!
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5