SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

JavaScriptでテストを書こう!

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

  • 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のインストール結果の確認

次のページ
Jasmineでのテストの書き方と実行

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7622 2014/02/27 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング