ダウンロード サンプルファイル (5.5 KB)
本連載は、テストコードをこれから書こうと考えているJavaScript技術者を対象に、テストコードの意義から、テスト駆動開発、JavaScriptでのテストコードの書き方、継続的インテグレーションなどテスト全般にわたって解説します。また、原理原則だけでなくWhyから説明し、チームメンバーを巻き込みながら開発現場に活かせる考え方を総合的に解説します。第3回目の本稿は、Node.jsでのテストの実行方法を、JasmineというJavaScriptテスティングフレームワークを使って説明します。前半はJasmineの基礎、後半はテスト駆動開発の流れに沿って、Jasmineでテストの書き方を紹介します。
対象読者
- JavaScriptの基本をある程度理解している方
- テストコードをこれから書こうと考えている方
Jasmineとは
Jasmineとは、JavaScriptのテスティングフレームワークです。Mochaなどのテスティングフレームワークとは違い、値を評価するためのアサーションモジュールも内包されています。また、CoffeeScriptでの記述も可能です。
Jasmineは振る舞い駆動(BDD)の形式でテストを記述します。BDDは、作成する機能に期待する「振る舞い」を文章で記述していきます。言い換えると、顧客が望んでいるであろう「要求仕様」に近い形でテストを表現しながら、テストと実装を記述していく手法です。
リスト01は、Jasmineで記述した基本的なテストコードです。このコードを文章として日本語に直訳すると「【処理結果】が【期待する値】と同じでないと予測(expect)する」です。単純に【処理結果】と【期待する値】が一致していないということだけでなく、テストコードを読むと、その評価の内容を振る舞いとして文章のように読むことができます。Jasmineでは、expectメソッドの引数がメソッドなどの処理結果、一番右側の評価を行うメソッドの引数は期待する値を入れます。
expect(処理結果).not.toEqual(期待する値);
Jasmineはブラウザで動作するテスティングフレームワークとして開発されましたが、Node.jsで使用できるjasmine-nodeも公開されています。構文は両方とも同じものが使用できます。本稿では、jasmine-nodeの使用方法を解説します。
Jasmineのマニュアルは、以下のURLにあります。
テストコードを実行する準備
それでは、Node.jsでJasmineを使ってテストコードを実行するための準備を行います。
Node.jsとJasmineのインストール方法
Node.jsをインストールしてみましょう。まずは、以下のサイトからNode.jsインストール実行ファイルをダウンロードし、実行します。ここでは、Windowsでのインストール方法を説明します。
次に、インストールが完了したかどうか、確認しましょう。コマンドプロンプトを起動し、以下のコマンドを実行してみてください。nodeコマンドのヘルプを参照してみます。以下のように表示されていれば成功です。
node -h
続いて、テスティングフレームワークであるJasmineのインストールを行います。Node.js版はjasmine-nodeというモジュールをインストールします。Node.jsのモジュールは、npmコマンドを使ってインストールを行います。npmは、Node.js向けパッケージ管理ツールです。多くのNode.js向けのオープンソースのモジュールが登録されています。
以下のコマンドを実行してください。必要なモジュールが自動的にダウンロードされ、Jasmineのインストールが完了します。「-g」オプションは、グローバルインストールという意味で、npmのインストール場所にパッケージがインストールされます。
npm install -g jasmine-node
Jasmineのインストールが完了したかどうかを確認しましょう。nodeコマンドと同様、Jasmineのヘルプを参照してみます。以下のように表示されれば成功です。
jasmine-node -h
この記事は参考になりましたか?
- JavaScriptでテストを書こう!連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 安西剛(ヤスニシ ツヨシ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


