what is jspec

36
JSpec のご紹介 JavaScript Testing Framework オブジェクト俱楽部 ()永和システムマネジメント 家永 英治

Upload: eiji-ienaga

Post on 06-May-2015

1.156 views

Category:

Documents


0 download

DESCRIPTION

oblove 2009 summer LT

TRANSCRIPT

Page 1: What is JSpec

JSpec のご紹介JavaScript Testing Framework

オブジェクト俱楽部 /(株)永和システムマネジメント家永 英治

Page 2: What is JSpec

自己紹介カットさっそく本編

Page 3: What is JSpec

What: JSpec?JSpec ってな~に?

Page 4: What is JSpec

What: JSpec?• JavaScript Testing Framework

• RSpec 風の記述

• describe, before_each, it, should ...

• 豊富な語彙の Matchers

• eql, include, be_true, hava_tag, throw_error ...

Page 5: What is JSpec

JSpecを使った Spec Code の記述例

http://visionmedia.github.com/jspec/注) RSpecじゃないよ!

Page 6: What is JSpec

• JSpec(RSpec)の特徴

• Test as Specification!

• Test as Documentation!

読書会もやってるよ

おすすめ♪

Page 7: What is JSpec

合わせて、読みたい良書

待望の邦訳!

近日発売!

Page 8: What is JSpec

Who: JSpec?誰が、JSpecを使う?

Page 9: What is JSpec

Who: JSpec?

• JavaScript系のWebアプリケーションエンジニア

• RSpec系が好きな人

Page 10: What is JSpec

Why: JSpec?JSpecを使う 理由/動機 は?

Page 11: What is JSpec

Why: JSpec?

• 意図の明確なSpec Code / Product Codeを書きたい!

• 手動テストのみだと確認が手間!

Page 12: What is JSpec

Example: JSpecOX ゲームを例に JSpec を素振りしてみたよ

OXO

X

http://github.com/haru01/Learning-JSpec-JQuery/tree/master

Page 13: What is JSpec

OXゲームの仕様

• 3x3のOX盤

• もし O が3つ並べば 、O の勝ちであること

• もし X が3つ並べば 、X の勝ちであること

• もし最後まで並ばなければ 、引き分けであること

OXO

X

Page 14: What is JSpec
Page 15: What is JSpec
Page 16: What is JSpec
Page 17: What is JSpec
Page 18: What is JSpec
Page 19: What is JSpec
Page 20: What is JSpec
Page 21: What is JSpec
Page 22: What is JSpec
Page 23: What is JSpec
Page 24: What is JSpec

ネーミングで迷ったところ

judgeメソッドの実装

Page 25: What is JSpec

ネーミングで迷ったところ

Page 26: What is JSpec

ネーミングで迷ったところ

Page 27: What is JSpec

• 時間が余ったので• 銅鑼が鳴るまで• デモして• 書いたコードを眺めるよ

Page 28: What is JSpec

See Also

• http://visionmedia.github.com/jspec/

• http://github.com/haru01/Learning-JSpec-JQuery/tree/master

Page 29: What is JSpec

没スライド

Page 30: What is JSpec

OXゲームの仕様 1

• プレーヤ

• 奇数手は O であること

• 偶数手は X であること

OXO

X

Page 31: What is JSpec
Page 32: What is JSpec
Page 33: What is JSpec

ProductCode

ブラウザ

ProductCode

SpecCode

JSpecを使えばクリック数、目視の確認数が減少

Red, Green, Refactoringの黄金の回転率が上昇!

※)上図の下部は、極端にSpec Code のみでProduct Codeの動作確認をしているが、現実では自動と手動の併用になる

ブラウザ

Page 34: What is JSpec

豊富なMatchers-JSpecの特徴

Page 35: What is 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

Page 36: What is JSpec

豊富な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