SlideShare a Scribd company logo
1 of 36
Download to read offline
JSpec のご紹介
JavaScript Testing Framework
オブジェクト 楽部 /(株)永和システムマネジメント
家永 英治
自己紹介カット
さっそく本編
What: JSpec?
JSpec ってな∼に?
What: JSpec?
• JavaScript Testing Framework
• RSpec 風の記述
• describe, before_each, it, should ...
• 豊富な語彙の Matchers
• eql, include, be_true, hava_tag, throw_error ...
JSpecを使った Spec Code の記述例
http://visionmedia.github.com/jspec/
注) RSpecじゃないよ!
• JSpec(RSpec)の特徴
• Test as Specification!
• Test as Documentation!
読書会もやってるよ
おすすめ♪
合わせて、読みたい良書
待望の邦訳!
近日発売!
Who: JSpec?
誰が、JSpecを使う?
Who: JSpec?
• JavaScript系の
Webアプリケーションエンジニア
• RSpec系が好きな人
Why: JSpec?
JSpecを使う 理由/動機 は?
Why: JSpec?
• 意図の明確な
Spec Code / Product Codeを
書きたい!
• 手動テストのみだと確認が手間!
Example: JSpec
OX ゲームを例に JSpec を素振りしてみたよ
OX
O
X
http://github.com/haru01/Learning-JSpec-JQuery/tree/master
OXゲームの仕様
• 3x3のOX盤
• もし O が3つ並べば 、O の勝ちであること
• もし X が3つ並べば 、X の勝ちであること
• もし最後まで並ばなければ 、引き分けであること
OX
O
X
ネーミングで
迷ったところ
judgeメソッドの実装
ネーミングで
迷ったところ
ネーミングで
迷ったところ
• 時間が余ったので
• 銅鑼が鳴るまで
• デモして
• 書いたコードを眺めるよ
See Also
• http://visionmedia.github.com/jspec/
• http://github.com/haru01/Learning-JSpec-JQuery/tree/master
没スライド
OXゲームの仕様 1
• プレーヤ
• 奇数手は O であること
• 偶数手は X であること
OX
O
X
Product
Code
ブラウザ
Product
Code
Spec
Code
JSpecを使えばクリック数、目視の確認数が減少
Red, Green, Refactoringの黄金の回転率が上昇!
※)上図の下部は、極端にSpec Code のみでProduct Codeの動作確認をしているが、現実では自動と手動の併用になる
ブラウザ
豊富なMatchers
-JSpecの特徴
豊富なMathers (core)
• eql
• be_null
• be_empty
• be_true
• be_false
• be_greater_than
• be_less_than
• have
• have_length
• include
• match
• throw_error
• respond_to
.... etc
豊富なMathers (jQuery)
• have_tag
• have_child
• have_many
• have_text
• have_attr
• have_class
• have_value
• be_visible
• be_hidden
• be_enabled
• be_disabled
• be_selected
• have_id
.... etc

More Related Content

What's hot

20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのかKatsunori Kanda
 
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds411周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41Kazumune Katagiri
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec placticek-motoyan
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec placticek-motoyan
 
自己紹介LT「俺の迷走っぷり」
自己紹介LT「俺の迷走っぷり」自己紹介LT「俺の迷走っぷり」
自己紹介LT「俺の迷走っぷり」Ken Muryoi
 
KLab Server Side Camp
KLab Server Side CampKLab Server Side Camp
KLab Server Side Campssuser7a9c19
 
Getting start with knockout.js
Getting start with knockout.jsGetting start with knockout.js
Getting start with knockout.jsAkio Ishida
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
自動化パタンランゲージ
自動化パタンランゲージ自動化パタンランゲージ
自動化パタンランゲージHiroshi Maekawa
 
テスト自動化のパタンランゲージ@Agilet Tour Osaka
テスト自動化のパタンランゲージ@Agilet Tour Osakaテスト自動化のパタンランゲージ@Agilet Tour Osaka
テスト自動化のパタンランゲージ@Agilet Tour OsakaHiroshi Maekawa
 

What's hot (11)

Play with Playframework
Play with PlayframeworkPlay with Playframework
Play with Playframework
 
20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか20150207 何故scalaを選んだのか
20150207 何故scalaを選んだのか
 
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds411周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec plactice
 
Rails on rspec plactice
Rails on rspec placticeRails on rspec plactice
Rails on rspec plactice
 
自己紹介LT「俺の迷走っぷり」
自己紹介LT「俺の迷走っぷり」自己紹介LT「俺の迷走っぷり」
自己紹介LT「俺の迷走っぷり」
 
KLab Server Side Camp
KLab Server Side CampKLab Server Side Camp
KLab Server Side Camp
 
Getting start with knockout.js
Getting start with knockout.jsGetting start with knockout.js
Getting start with knockout.js
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
自動化パタンランゲージ
自動化パタンランゲージ自動化パタンランゲージ
自動化パタンランゲージ
 
テスト自動化のパタンランゲージ@Agilet Tour Osaka
テスト自動化のパタンランゲージ@Agilet Tour Osakaテスト自動化のパタンランゲージ@Agilet Tour Osaka
テスト自動化のパタンランゲージ@Agilet Tour Osaka
 

Viewers also liked

JavaScript unit testing with Jasmine
JavaScript unit testing with JasmineJavaScript unit testing with Jasmine
JavaScript unit testing with JasmineYuval Dagai
 
Testing javascript-fronttrends-2010
Testing javascript-fronttrends-2010Testing javascript-fronttrends-2010
Testing javascript-fronttrends-2010Morgan Roderick
 
Arquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerArquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerAndré Faria Gomes
 
JavaScript testing with Jasmine
JavaScript testing with JasmineJavaScript testing with Jasmine
JavaScript testing with JasmineGeorge Mendoza
 
Testing Javascript with Jasmine
Testing Javascript with JasmineTesting Javascript with Jasmine
Testing Javascript with JasmineAndré Faria Gomes
 
Agile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source FrameworksAgile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source FrameworksViraf Karai
 

Viewers also liked (8)

JavaScript unit testing with Jasmine
JavaScript unit testing with JasmineJavaScript unit testing with Jasmine
JavaScript unit testing with Jasmine
 
Testing javascript-fronttrends-2010
Testing javascript-fronttrends-2010Testing javascript-fronttrends-2010
Testing javascript-fronttrends-2010
 
Arquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain LayerArquitetura de Software - Performance, Layers e Domain Layer
Arquitetura de Software - Performance, Layers e Domain Layer
 
Introduction to Groovy
Introduction to GroovyIntroduction to Groovy
Introduction to Groovy
 
JavaScript testing with Jasmine
JavaScript testing with JasmineJavaScript testing with Jasmine
JavaScript testing with Jasmine
 
April Learning Log
April Learning LogApril Learning Log
April Learning Log
 
Testing Javascript with Jasmine
Testing Javascript with JasmineTesting Javascript with Jasmine
Testing Javascript with Jasmine
 
Agile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source FrameworksAgile Java Testing With Open Source Frameworks
Agile Java Testing With Open Source Frameworks
 

Similar to What is JSpec

サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
Js frameworkの紹介
Js frameworkの紹介Js frameworkの紹介
Js frameworkの紹介Ryo Shimada
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門minazou67
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.jsYuto Suzuki
 
Dark vol4 for_slideshare
Dark vol4 for_slideshareDark vol4 for_slideshare
Dark vol4 for_slideshareara_ta3
 
Scala界隈の近況
Scala界隈の近況Scala界隈の近況
Scala界隈の近況takezoe
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!K Kinzal
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3Masahiro Wakame
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiTomohiro Kumagai
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルMaaya Ishida
 
Scala.js触ってみた
Scala.js触ってみたScala.js触ってみた
Scala.js触ってみたAsami Abe
 
IDEを目指す開発者コンソール
IDEを目指す開発者コンソールIDEを目指す開発者コンソール
IDEを目指す開発者コンソールminoaw
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編Asami Abe
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめYuki Ishikawa
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介しくみ製作所
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムyayamamo @ DBCLS Kashiwanoha
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクトMoriyoshi Koizumi
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門minazou67
 

Similar to What is JSpec (20)

サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
Js frameworkの紹介
Js frameworkの紹介Js frameworkの紹介
Js frameworkの紹介
 
Java SE 再入門
Java SE 再入門Java SE 再入門
Java SE 再入門
 
【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js【LT】 怖くない恐怖のScala.js
【LT】 怖くない恐怖のScala.js
 
Dark vol4 for_slideshare
Dark vol4 for_slideshareDark vol4 for_slideshare
Dark vol4 for_slideshare
 
Scala界隈の近況
Scala界隈の近況Scala界隈の近況
Scala界隈の近況
 
Scala.jsはじめました!
Scala.jsはじめました!Scala.jsはじめました!
Scala.jsはじめました!
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
Play jjug2012spring
Play jjug2012springPlay jjug2012spring
Play jjug2012spring
 
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansaiJavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
 
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
 
Javaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイルJavaな人が気を付けるべきJavaScriptコーディングスタイル
Javaな人が気を付けるべきJavaScriptコーディングスタイル
 
Scala.js触ってみた
Scala.js触ってみたScala.js触ってみた
Scala.js触ってみた
 
IDEを目指す開発者コンソール
IDEを目指す開発者コンソールIDEを目指す開発者コンソール
IDEを目指す開発者コンソール
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
JavaScriptことはじめ
JavaScriptことはじめJavaScriptことはじめ
JavaScriptことはじめ
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門
 

More from eiji ienaga

More from eiji ienaga (6)

TDD & Pull Request入門
TDD & Pull Request入門TDD & Pull Request入門
TDD & Pull Request入門
 
Install tdd
Install tddInstall tdd
Install tdd
 
XP再解釈
XP再解釈XP再解釈
XP再解釈
 
DDD
DDDDDD
DDD
 
XP Customer Testing
XP Customer TestingXP Customer Testing
XP Customer Testing
 
20100420
2010042020100420
20100420
 

What is JSpec