*

Jasmine(JavaScriptテスティングフレームワーク)入門【導入編】

公開日: : 最終更新日:2014/05/26 JavaScript, プログラミング, 技術情報 , , ,


スポンサードリンク



Titanium Mobileを使ってスマホのアプリを作成しようと考えているのですが、
テスティングフレームワークがTitanium Mobile標準で用意されていないため、JavaScriptのテストツールを検討する必要に迫られました。
一番に思いついたのはJsUnitだったのですが、2007年で開発止まっています。まあ良い意味で枯れているとは思いますが、それはWebアプリに関する意味であり、Titaniumではどうか?、と思いJasmineを選択しました。
と言っても、それほど深くJsUnitを使ったことはないのですが・・・

まずは、Jasmineの公式ページから必要なファイルをダウンロードします。

jasmine-standalone-1.3.0.zipクリックします。
ダウンロード先

jasmine-standalone-1.3.1が公開されていたみたいですが、ダウンロードサイトに行くと1.3しかないです。

なんからの直ぐに修正不可能で、致命的な不具合が発生したのでは??
と思いますが、気付かなかったことにします。

ダウンロードした書庫を任意の場所に解凍すると以下のファイルが含まれています。

解凍後のフォルダ内容1

Jasmineのテストを実際に実行するのにWebサーバが必要では?
と思っていたのですが、必要ないです。
といっても、Jasmineが提供しているサンプルのテスト対象jsとテストケースの場合しかまだ確認できていません。

テストの実行方法は、上記のエクスプローラに表示されているSpecRunner.htmlをWebブラウザで開くだけです。
よくある話ですが、ブラウザにより動いたり、動かなかったりすることがあります。
私が経験したパターンはChromeで動作しないテストがFirefoxで動作することでした。
理由は不明です・・・

実行結果は以下のようになります。
中身の詳細は後述します。

SpecRunnerの実行結果

この実行結果は、Jasmineがサンプルとして提供している以下のファイルを対象とした物となります。
カレントフォルダはSpecRunner.htmlが含まれるフォルダとなります。

  • SpecRunner.html
  • src/Player.js
  • src/Song.js
  • spec/PlayerSpec.js
  • spec/SpecHelper.js

Jasmineでは、specをテストケースと言う意味で利用しています。xUnitではテストケースのソースファイル名はXXXTestやTestXXXなどにしますが、JasmineではXXXSpecにするようです。

次にSpecRunner.htmlの中身は以下のようになっています。
(SpecRunner.htmlにコメントを追加しています。)


最後にテストケースの追加方法を記載します。
今回は簡単のためにPlayerSpec.jsを複製し、NewPlayerSpec.jsにリネームして利用します。

手順1 spec/PlayerSpec.jsをコピー
手順2 コピーで作成されたファイルをNewPlayerSpec.jsにリネーム
手順3 SpecRunner.htmlのの次行にを追加

SpecRunner.htmlを再度実行すると以下のような結果となります。

SpecRunnerの実行結果2

見ていただいて分かる通りですが、Passing 10specsとなり、Player・・・の部分が2つになっています。
今回は同じテストケースを単純にテストランナー(SpecRunner.html)に追加しただけなので、同じ結果が2つ表示されました。

Jasmine&JavaScriptはその他にも
Jasmine(JavaScriptテスティングフレームワーク)入門【Matcher編】
Jasmine(JavaScriptテスティングフレームワーク)実践【Webアプリ編】
がございますので、ぜひご覧ください。


スポンサードリンク

Googleアドセンス

Googleアドセンス




関連記事

no image

Androidの「Action Bar Icon Pack」を調査する。

Androidアプリケーションを作成する時にはアイコンの利用はほぼ必須です。 「Action Ba

記事を読む

お勧め本紹介[JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで]

本日は私がいつも手元に置いているJavaScript本を紹介させていただきます。 「JavaS

記事を読む

iOS8開発者向けお勧め本紹介[詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応]

iOS7開発者向けお勧め本紹介を以前に紹介させていただきまいたが、今回は同じ著者(大重美幸様)の本を

記事を読む

動画で英語を学習できるiOSの無料アプリCapTubeをリリースいたしました。

個人では初となるiOSアプリをリリースいたしました。 何度もリジェクトをくらいながら、開発開始

記事を読む

Jasmine(JavaScriptテスティングフレームワーク)入門【Matcher編】

Jasmineにおける実際のテストケースの作成方法をMatcherをメインに記載します。 Ja

記事を読む

Jasmine(JavaScriptテスティングフレームワーク)実践【Webアプリ編】

Titanium mobileでスマホのアプリを作成しようとしているのですが、ユニットテストの仕組み

記事を読む

2014年の秋のAppleのプレスイベントがついに開催されました。「Xcode 6 GM seed」もついにリリースされました。

2014年の秋のAppleのプレスイベントがついに開催されました。 プレスイベントのページ iP

記事を読む

no image

スマートフォン向けのアプリケーション開発フレームワークを比較してみる。

本日のエントリーではスマートフォン向けのアプリケーション開発フレームワークを比較してみようと思います

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

動画で英語を学習できるiOSの無料アプリCapTubeをリリースいたしました。

個人では初となるiOSアプリをリリースいたしました。 何度もリジ

no image
Ruby on rails4系でBootstrapを利用するためのtips

MacでRuby on rails4系のBootstrapを利用しよう

no image
Java、Eclipse、JUnit関連のエントリーの移行のお知らせ

Java、Eclipse、JUnit関連のエントリーは http:/

iOS8開発者向けお勧め本紹介[詳細! Swift iPhoneアプリ開発 入門ノート Swift 1.1+Xcode 6.1+iOS 8.1対応]

iOS7開発者向けお勧め本紹介を以前に紹介させていただきまいたが、今回

Swift入門(Xcode6のXCTestフレームワークで学ぶ) 第二回「関数(メソッド)とクロージャーの利用方法」

前回はSwiftの概要をザックリと説明させていただきました。 今

→もっと見る

Optimization WordPress Plugins & Solutions by W3 EDGE
PAGE TOP ↑