Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Takuma Watabiki
PDF, PPTX
4,428 views
Spock's world
JJUG CCC 2012 Fall でのスライドです。
Technology
◦
Read more
15
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 41
2
/ 41
3
/ 41
4
/ 41
5
/ 41
6
/ 41
7
/ 41
8
/ 41
9
/ 41
10
/ 41
11
/ 41
12
/ 41
13
/ 41
14
/ 41
15
/ 41
16
/ 41
17
/ 41
18
/ 41
19
/ 41
20
/ 41
21
/ 41
22
/ 41
23
/ 41
24
/ 41
25
/ 41
26
/ 41
27
/ 41
28
/ 41
29
/ 41
30
/ 41
31
/ 41
32
/ 41
33
/ 41
34
/ 41
35
/ 41
36
/ 41
37
/ 41
38
/ 41
39
/ 41
40
/ 41
41
/ 41
More Related Content
PDF
xUnit Test Patterns - Chapter11
by
Takuto Wada
PPTX
わんくま名古屋 #32 (20140823) TDD道場 #20
by
Yasuhiko Yamamoto
PDF
ありえるえりあ勉強会@五反田~テスト編~ Part3
by
Tomoyuki Sato
PPTX
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
by
Koichi Sakata
PDF
あんなテスト、こんなテスト(this and that about testing)
by
Takuya Tsuchida
PDF
xUnit Test Patterns - Chapter19
by
Takuto Wada
PDF
テストコードの定型化
by
Shinichi Hirauchi
PDF
xUnit Test Patterns - Chapter16
by
Takuto Wada
xUnit Test Patterns - Chapter11
by
Takuto Wada
わんくま名古屋 #32 (20140823) TDD道場 #20
by
Yasuhiko Yamamoto
ありえるえりあ勉強会@五反田~テスト編~ Part3
by
Tomoyuki Sato
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
by
Koichi Sakata
あんなテスト、こんなテスト(this and that about testing)
by
Takuya Tsuchida
xUnit Test Patterns - Chapter19
by
Takuto Wada
テストコードの定型化
by
Shinichi Hirauchi
xUnit Test Patterns - Chapter16
by
Takuto Wada
What's hot
PDF
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
PPT
Test Plugins
by
ykhr
PDF
xUTP Chapter19 (2). Testcase Class
by
Takuto Wada
KEY
初めての単体テスト
by
Basuke Suzuki
PDF
8時間耐久PHPUnitの教室
by
Yusuke Ando
PDF
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PDF
Akka Unit Testing
by
Masashi (Jangsa) Kawaguchi
PDF
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
PDF
Nose 鼻をきかせてテストせよ
by
Atsushi Odagiri
PPTX
C++でテスト駆動開発
by
Akineko Shimizu
PDF
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
PDF
テストを書こう、Unity編
by
Hiroto Imoto
PDF
Beyond JUnit3
by
Koichi Sakata
PPT
PHP agile test tips
by
Tsutomu Chikuba
PDF
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PDF
gen-class とバイトコード(第3回 gen-class 勉強会資料)
by
tnoda
PPT
Eclipse を使った java 開発 111126 杉浦
by
urasandesu
PDF
Unowned / Weak References with Closure
by
Naruki Chigira
第4回勉強会 単体テストのすすめ
by
hakoika-itwg
Test Plugins
by
ykhr
xUTP Chapter19 (2). Testcase Class
by
Takuto Wada
初めての単体テスト
by
Basuke Suzuki
8時間耐久PHPUnitの教室
by
Yusuke Ando
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
Akka Unit Testing
by
Masashi (Jangsa) Kawaguchi
はこだてIKA 第4回勉強会 単体テスト
by
Seiji KOMATSU
Nose 鼻をきかせてテストせよ
by
Atsushi Odagiri
C++でテスト駆動開発
by
Akineko Shimizu
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
テストを書こう、Unity編
by
Hiroto Imoto
Beyond JUnit3
by
Koichi Sakata
PHP agile test tips
by
Tsutomu Chikuba
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
gen-class とバイトコード(第3回 gen-class 勉強会資料)
by
tnoda
Eclipse を使った java 開発 111126 杉浦
by
urasandesu
Unowned / Weak References with Closure
by
Naruki Chigira
Viewers also liked
PDF
G*Magazineを読もう
by
Takuma Watabiki
KEY
Gws in fukuoka
by
Takuma Watabiki
PDF
JGGUG Community LT 2016
by
Takuma Watabiki
PDF
スーパー戦隊進化論
by
Takuma Watabiki
PDF
Jjug 20140430 gradle_basic
by
Takuma Watabiki
PDF
あなたの安心を高速に守る Container-based CI
by
Wataru MIYAGUNI
PDF
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
PDF
Gradleどうでしょう
by
Takuma Watabiki
PDF
G*におけるソフトウェアテスト・シーズンIII
by
Takuma Watabiki
PDF
システム開発を前進させるためのGradle導入法
by
Takuma Watabiki
PDF
ユースケースからテスト駆動開発へ
by
Shuji Watanabe
PDF
Devsumi2012 JGGUG LT
by
Takuma Watabiki
PDF
Grailsでドメイン駆動設計を実践する時の勘所
by
Takuma Watabiki
PDF
Closures and methodMissing are real
by
Takahiro Sugiura
PPTX
テスト自動化とアーキテクチャ
by
Toru Koido
G*Magazineを読もう
by
Takuma Watabiki
Gws in fukuoka
by
Takuma Watabiki
JGGUG Community LT 2016
by
Takuma Watabiki
スーパー戦隊進化論
by
Takuma Watabiki
Jjug 20140430 gradle_basic
by
Takuma Watabiki
あなたの安心を高速に守る Container-based CI
by
Wataru MIYAGUNI
Spring in-summer-gradle-hands on-withanswers
by
Takuma Watabiki
Gradleどうでしょう
by
Takuma Watabiki
G*におけるソフトウェアテスト・シーズンIII
by
Takuma Watabiki
システム開発を前進させるためのGradle導入法
by
Takuma Watabiki
ユースケースからテスト駆動開発へ
by
Shuji Watanabe
Devsumi2012 JGGUG LT
by
Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所
by
Takuma Watabiki
Closures and methodMissing are real
by
Takahiro Sugiura
テスト自動化とアーキテクチャ
by
Toru Koido
Similar to Spock's world
PDF
Introduction to Spock
by
Takahiro Sugiura
PDF
Spockの基礎
by
Kiyotaka Oku
PPTX
Junit4
by
ichikaz3
KEY
Unit testで定時帰宅!
by
Funato Takashi
PDF
最近の単体テスト
by
Ken Morishita
KEY
Clojrue 13 testing
by
Kiyotaka Kunihira
PDF
JavaのテストGroovyでいいのではないかという話
by
disc99_
PDF
Springのプログラムモデルと動く仕様~テスト編~
by
terahide
PDF
Javaな人が今すぐ使えるG*
by
irof N
PDF
GxPユニットテスト研修
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
PDF
ICSE2014参加報告 (SE勉強会 6/12)
by
Kazunori Sakamoto
PDF
C# から java へのプログラム移植で体験したtddの効果は?
by
Shinichi Hirauchi
PDF
Kink: invokedynamic on a prototype-based language
by
Taku Miyakawa
PPT
第5回勉強会
by
Mugen Fujii
PDF
エクストリームエンジニア4
by
T-arts
PDF
ソフトウェア工学2023 11 テスト
by
Toru Tamaki
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
PDF
Groovy base
by
Akura Pi
PDF
世界をすこしだけ前に進めるということ
by
Yukei Wachi
PDF
Unit test in android
by
Tatsuya Maki
Introduction to Spock
by
Takahiro Sugiura
Spockの基礎
by
Kiyotaka Oku
Junit4
by
ichikaz3
Unit testで定時帰宅!
by
Funato Takashi
最近の単体テスト
by
Ken Morishita
Clojrue 13 testing
by
Kiyotaka Kunihira
JavaのテストGroovyでいいのではないかという話
by
disc99_
Springのプログラムモデルと動く仕様~テスト編~
by
terahide
Javaな人が今すぐ使えるG*
by
irof N
GxPユニットテスト研修
by
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
ICSE2014参加報告 (SE勉強会 6/12)
by
Kazunori Sakamoto
C# から java へのプログラム移植で体験したtddの効果は?
by
Shinichi Hirauchi
Kink: invokedynamic on a prototype-based language
by
Taku Miyakawa
第5回勉強会
by
Mugen Fujii
エクストリームエンジニア4
by
T-arts
ソフトウェア工学2023 11 テスト
by
Toru Tamaki
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
Groovy base
by
Akura Pi
世界をすこしだけ前に進めるということ
by
Yukei Wachi
Unit test in android
by
Tatsuya Maki
Spock's world
1.
Spock’s World JJUG CCC
2012 Fall R3-1 株式会社デライトテクノロジーズ 綿引琢磨
2.
本スライドの対象 普段 Eclipse を使っている
Java デベロッパー全般 JUnit を使っているが、もうちょっとスマートに テストを書きたいと思っている人 テストのないプロジェクトで困っている マネージャー・リーダー
3.
自己紹介 綿引琢磨(わたびきたくま) twitter : bikisuke 株式会社デライトテクノロジーズ 代表取締役 日本
Grails / Groovy ユーザーグループ運営委員 Java / Groovy エンジニア
4.
アジェンダ JUnit から Spock
へ Spock の基礎 Spock についてのよくある誤解 Spock の機能拡張
5.
JUnit から Spock
へ
8.
JUnit を積極的に使いたい理由 テストの自動化ができる Eclipse に標準装備 プロダクトコードと同じ
Java で書ける 書籍や Web など情報が豊富 etc.
9.
JUnit の物足りないところ モックの仕組みがない (モックフレームワークが別途必要) パラメタライズドテストが残念 パラメータの配列を・・・
どのパラメータがエラーかわからない (ひと工夫いる)
10.
そこで Spock ですよ class
HelloSpock extends spock.lang.Specification { def "length of Spock's and his friends' names"() { expect: name.size() == length where: name | length "Spock" | 5 "Kirk" | 4 "Scotty" | 6 } }
11.
Spock とは Groovy 上に構築されたテストフレームワーク
Groovy の機能を活用し、DSL によるシンプルで 可読性の高いテストコードを実現 強力な Assert 機能でエラー箇所の特定が容易 JUnit 互換のため IDE からも実行可能 開発者向けの仕様テストとして、BDD も実践可能
12.
JUnit との比較
JUnit Spock 記述言語 Java Groovy テストの自動化 ◎ ◎ Eclipse 標準装備 ◎ △ 技術情報 ◎ △ モックの仕組み △ ◎ パラメタライズド △ ◎ 仕様テスト × ◎
13.
Spock の基礎
14.
Eclipse での環境整備 Eclipse-Groovy プラグインのインストール
http://groovy.codehaus.org/Eclipse+Plugin Eclipse の設定 「use monospace font for junit」 にチェック Groovy プロジェクトへの変換 [Configure] > [Convert to Groovy Project] ライブラリの追加
15.
テストクラスの構造
org.junit.runner.Runner @RunWith(Sputnik.class) を継承 Specification HelloSpec フィクスチャメソッド() フィーチャメソッド() ヘルパーメソッド()
16.
処理の流れ テスト
字句解析 コード バイト テスト AST変換 コード 構文解析 生成 コード 実行
17.
処理の流れ
• DSL の解析 • モック/例外実装の追加 • メタ情報の追加 • モデルの構築 テスト 字句解析 コード バイト テスト AST変換 コード 構文解析 生成 コード 実行
18.
フィクスチャメソッド setup() 各フィーチャメソッドの実行前に呼ばれる。 cleanup()
各フィーチャメソッドの実行後に呼ばれる。 setupSpec() 最初のフィーチャメソッドの実行前に呼ばれる。 cleanupSpec() 最後のフィーチャメソッドの実行後に呼ばれる。
19.
フィーチャメソッド テストメソッドを指す JUnit の場合、@Test を付けるメソッドに当る メソッド名は文字列で表現するのが習慣 最低1つのブロックを含んでいる必要がある
20.
ブロック ブロック名
フェーズ 概要 フィーチャの設定作業(前提条件)を記述す setup / given Setup る。先頭に記述する必要がある。 テスト対象の振る舞いを記述する。then when Stimulus ブロックとセットで使用する必要がある。 when ブロックに対する条件、例外条件、 then Response インタラクションを記述する。 Stimulus / 条件を記述する。then ブロックよりも記述 expect Response 制限がある。 フィーチャ内でのリソースの解放作業を記述 cleanup Cleanup する。 データドリブンテストの場合に記述する。 where - フィーチャの最後に記述する必要がある。
21.
データドリブンテスト Spock を使用するメリットの一つ パラメタライズドテストをスマートに記述
データはテーブル書式またはコレクションで表現 Assert 機能により、エラー箇所が明確にわかる
22.
例外に関するテスト 以下の4メソッドで検証可能 <T extends Throwable>
T thrown() <T extends Throwable> T thrown(Class<T> type) void notThrown (<T extends Throwable> type) void noExceptionThrown()
23.
テストダブル (Mock/Stub/Spy) インタラクションの代役を生成 Java
/ Groovy オブジェクト用の API 任意の代役を表現するワイルドカードも使える Stub の振る舞い http://yamkazu.hatenablog.com/entry/2012/10/20/222558 テストダブルの詳細 http://xunitpatterns.com/Test%20Double%20Patterns.html
24.
Spock についての よくある誤解
25.
テストを Spock (Groovy)
で 書くと、リファクタリング できないんじゃないの?
26.
普通にできます。
27.
Groovy の PowerAssert
で いいんじゃないの?
28.
PowerAssert と 同じではありません。
29.
JUnit の Rule
アノテーション を活用してるから、Spock に移行できません。
30.
Rule アノテーションも そのまま使えます。
31.
Spock の機能拡張
32.
2つの拡張方法 グローバル拡張 実行コンテキストの構築時に対象のテストに 対して適用される アノテーションドリブン拡張 クラスやメソッド、フィールド単位で テスト実行時に適用される
33.
拡張処理の流れ テスト
字句解析 コード バイト テスト AST変換 コード 構文解析 生成 コード 実行
34.
拡張処理の流れ
•実行コンテキストの構築 •グローバル拡張の適用 テスト 字句解析 コード バイト テスト AST変換 コード 構文解析 生成 コード 実行
35.
拡張処理の流れ
• アノテーション ドリブン拡張の適用 •実行コンテキストの構築 •グローバル拡張の適用 テスト 字句解析 コード バイト テスト AST変換 コード 構文解析 生成 コード 実行
36.
グローバル拡張 JUnit アダプタ JUnitFixtureMethodsExtension JUnit
Rules 適用 RuleExtension / ClassRuleExtension テスト実行可否 IncludeExculdeExtension テスト最適化 OptimizeRunOrderExtension
37.
アノテーションドリブン拡張 @AutoCleanup @FailsWith @Ignore / @IgnoreIf
/ @IgnoreRest @Stepwise @Timeout @Unroll @Use
38.
Spock 関連情報 ソースリポジトリ https://github.com/spockframework/spock ドキュメント
http://docs.spockframework.org/en/latest/ Wiki (上記ドキュメントに移行予定) http://code.google.com/p/spock/w/list
39.
日本での情報 G* ワークショップ 隔月程度のペースで都内を中心に開催 G*
Magazine 年に数回発刊している日本語で読める唯一の Groovy 関連電子雑誌 PDF : http://grails.jp/g_mag_jp/index.html EPUB : http://beta.mybetabook.com/u/jggug/
40.
ご清聴ありがとうございました
41.
Spock’s World JJUG CCC
2012 Fall R3-1 株式会社デライトテクノロジーズ 綿引琢磨
Download