Enviar búsqueda
Cargar
G*におけるソフトウェアテスト・シーズンIII
•
1 recomendación
•
2,553 vistas
Takuma Watabiki
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 55
Descargar ahora
Descargar para leer sin conexión
Recomendados
Spockを使おう!
Spockを使おう!
Takuma Watabiki
Ggug spock
Ggug spock
Skills Matter
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
Kiyotaka Oku
Idiomatic spock
Idiomatic spock
GR8Conf
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Guillaume Laforge
How to Write Node.js Module
How to Write Node.js Module
Fred Chien
FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
Recomendados
Spockを使おう!
Spockを使おう!
Takuma Watabiki
Ggug spock
Ggug spock
Skills Matter
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
Howard Lewis Ship
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
Kiyotaka Oku
Idiomatic spock
Idiomatic spock
GR8Conf
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Groovy and Grails in Action - Devoxx 2008 - University - Guillaume Laforge
Guillaume Laforge
How to Write Node.js Module
How to Write Node.js Module
Fred Chien
FalsyValues. Dmitry Soshnikov - ECMAScript 6
FalsyValues. Dmitry Soshnikov - ECMAScript 6
Dmitry Soshnikov
Spock: Test Well and Prosper
Spock: Test Well and Prosper
Ken Kousen
Smarter Testing with Spock
Smarter Testing with Spock
Dmitry Voloshko
Антон Нонко, Классические строки в C++
Антон Нонко, Классические строки в C++
Sergey Platonov
Spock Testing Framework - The Next Generation
Spock Testing Framework - The Next Generation
BTI360
Do we need Unsafe in Java?
Do we need Unsafe in Java?
Andrei Pangin
Node.js/io.js Native C++ Addons
Node.js/io.js Native C++ Addons
Chris Barber
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
matuura_core
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Anton Arhipov
Down to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap Dumps
Andrei Pangin
node ffi
node ffi
偉格 高
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
Обзор фреймворка Twisted
Обзор фреймворка Twisted
Maxim Kulsha
Clean code via dependency injection + guice
Clean code via dependency injection + guice
Jordi Gerona
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
sunng87
Object oriented JavaScript
Object oriented JavaScript
Rafał Wesołowski
NIO and NIO2
NIO and NIO2
Balamurugan Soundararajan
Javascript: the important bits
Javascript: the important bits
Chris Saylor
Testing your javascript code with jasmine
Testing your javascript code with jasmine
Rubyc Slides
Jdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Anton Arhipov
Spock Framework
Spock Framework
Ismael
How about Gradle?
How about Gradle?
Yasuharu Nakano
Más contenido relacionado
La actualidad más candente
Spock: Test Well and Prosper
Spock: Test Well and Prosper
Ken Kousen
Smarter Testing with Spock
Smarter Testing with Spock
Dmitry Voloshko
Антон Нонко, Классические строки в C++
Антон Нонко, Классические строки в C++
Sergey Platonov
Spock Testing Framework - The Next Generation
Spock Testing Framework - The Next Generation
BTI360
Do we need Unsafe in Java?
Do we need Unsafe in Java?
Andrei Pangin
Node.js/io.js Native C++ Addons
Node.js/io.js Native C++ Addons
Chris Barber
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
matuura_core
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Anton Arhipov
Down to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap Dumps
Andrei Pangin
node ffi
node ffi
偉格 高
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
ikikko
Обзор фреймворка Twisted
Обзор фреймворка Twisted
Maxim Kulsha
Clean code via dependency injection + guice
Clean code via dependency injection + guice
Jordi Gerona
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
sunng87
Object oriented JavaScript
Object oriented JavaScript
Rafał Wesołowski
NIO and NIO2
NIO and NIO2
Balamurugan Soundararajan
Javascript: the important bits
Javascript: the important bits
Chris Saylor
Testing your javascript code with jasmine
Testing your javascript code with jasmine
Rubyc Slides
Jdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Anton Arhipov
La actualidad más candente
(20)
Spock: Test Well and Prosper
Spock: Test Well and Prosper
Smarter Testing with Spock
Smarter Testing with Spock
Антон Нонко, Классические строки в C++
Антон Нонко, Классические строки в C++
Spock Testing Framework - The Next Generation
Spock Testing Framework - The Next Generation
Do we need Unsafe in Java?
Do we need Unsafe in Java?
Node.js/io.js Native C++ Addons
Node.js/io.js Native C++ Addons
連邦の白いヤツ 「Objective-C」
連邦の白いヤツ 「Objective-C」
Riga Dev Day 2016 - Having fun with Javassist
Riga Dev Day 2016 - Having fun with Javassist
Down to Stack Traces, up from Heap Dumps
Down to Stack Traces, up from Heap Dumps
node ffi
node ffi
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Jenkins 2を使った究極のpipeline ~ 明日もう一度来てください、本物のpipelineをお見せしますよ ~
Обзор фреймворка Twisted
Обзор фреймворка Twisted
Clean code via dependency injection + guice
Clean code via dependency injection + guice
Clojure: Practical functional approach on JVM
Clojure: Practical functional approach on JVM
Object oriented JavaScript
Object oriented JavaScript
NIO and NIO2
NIO and NIO2
Javascript: the important bits
Javascript: the important bits
Testing your javascript code with jasmine
Testing your javascript code with jasmine
Jdk 7 4-forkjoin
Jdk 7 4-forkjoin
JavaOne 2015 - Having fun with Javassist
JavaOne 2015 - Having fun with Javassist
Destacado
Spock Framework
Spock Framework
Ismael
How about Gradle?
How about Gradle?
Yasuharu Nakano
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
Kiyotaka Oku
Hands on the Gradle
Hands on the Gradle
Matthias Käppler
Jenkins導入ライブ
Jenkins導入ライブ
Hiasyoshi Suehiro
Jenkinsプラグイン開発
Jenkinsプラグイン開発
Takahisa Wada
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
Kenichi Kambara
GradleによるG*なビルドシステムの構築
GradleによるG*なビルドシステムの構築
Masatoshi Hayashi
Groovy Testing Aug2009
Groovy Testing Aug2009
guest4a266c
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
Kenji Hiranabe
The outlineoftestprocess
The outlineoftestprocess
kyon mm
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
Tomek Kaczanowski
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
kyon mm
Spock Framework 2
Spock Framework 2
Ismael
Groovier testing with Spock
Groovier testing with Spock
Robert Fletcher
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Uehara Junji
Gradle a new Generation Build Tool
Gradle a new Generation Build Tool
Shinya Mochida
Testing Web Applications with GEB
Testing Web Applications with GEB
Howard Lewis Ship
function list
function list
kyon mm
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Hiroyuki Ohnaka
Destacado
(20)
Spock Framework
Spock Framework
How about Gradle?
How about Gradle?
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
Hands on the Gradle
Hands on the Gradle
Jenkins導入ライブ
Jenkins導入ライブ
Jenkinsプラグイン開発
Jenkinsプラグイン開発
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
GradleによるG*なビルドシステムの構築
GradleによるG*なビルドシステムの構築
Groovy Testing Aug2009
Groovy Testing Aug2009
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
AgileJapan2010 基調講演:野中郁次郎先生による「実践知のリーダシップ~スクラムと知の場作り」
The outlineoftestprocess
The outlineoftestprocess
Gradle talk, Javarsovia 2010
Gradle talk, Javarsovia 2010
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
Spock Framework 2
Spock Framework 2
Groovier testing with Spock
Groovier testing with Spock
Groovy 1.8の新機能について
Groovy 1.8の新機能について
Gradle a new Generation Build Tool
Gradle a new Generation Build Tool
Testing Web Applications with GEB
Testing Web Applications with GEB
function list
function list
レガシーコード改善はじめました 横浜道場
レガシーコード改善はじめました 横浜道場
Similar a G*におけるソフトウェアテスト・シーズンIII
Jggug 2010 330 Grails 1.3 観察
Jggug 2010 330 Grails 1.3 観察
Tsuyoshi Yamamoto
Extend GraphQL with directives
Extend GraphQL with directives
Greg Bergé
Creating Gradle Plugins - Oredev
Creating Gradle Plugins - Oredev
Annyce Davis
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Tsuyoshi Yamamoto
J slider
J slider
Sesum Dragomir
Clojure And Swing
Clojure And Swing
Skills Matter
JJUG CCC 2011 Spring
JJUG CCC 2011 Spring
Kiyotaka Oku
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
Thierry Wasylczenko
dojo.Patterns
dojo.Patterns
Peter Higgins
Testing a 2D Platformer with Spock
Testing a 2D Platformer with Spock
Alexander Tarlinder
Groovy Testing
Groovy Testing
Davide Rossi
All things that are not code
All things that are not code
Mobile Delivery Days
Spock
Spock
Naiyer Asif
Node.js System: The Landing
Node.js System: The Landing
Haci Murat Yaman
G*ワークショップ in 仙台 Grails(とことん)入門
G*ワークショップ in 仙台 Grails(とことん)入門
Tsuyoshi Yamamoto
Backbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The Browser
Howard Lewis Ship
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
Christian Baranowski
do ruby ao golang: o que aprendi criando um microserviço depois de 5000 commits
do ruby ao golang: o que aprendi criando um microserviço depois de 5000 commits
AndreLeoni1
Introduction to open gl in android droidcon - slides
Introduction to open gl in android droidcon - slides
tamillarasan
Richard Fridrich: Třesení stromem v JavaScriptu
Richard Fridrich: Třesení stromem v JavaScriptu
Develcz
Similar a G*におけるソフトウェアテスト・シーズンIII
(20)
Jggug 2010 330 Grails 1.3 観察
Jggug 2010 330 Grails 1.3 観察
Extend GraphQL with directives
Extend GraphQL with directives
Creating Gradle Plugins - Oredev
Creating Gradle Plugins - Oredev
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
Grails 1.2 探検隊 -新たな聖杯をもとめて・・・-
J slider
J slider
Clojure And Swing
Clojure And Swing
JJUG CCC 2011 Spring
JJUG CCC 2011 Spring
Construire une application JavaFX 8 avec gradle
Construire une application JavaFX 8 avec gradle
dojo.Patterns
dojo.Patterns
Testing a 2D Platformer with Spock
Testing a 2D Platformer with Spock
Groovy Testing
Groovy Testing
All things that are not code
All things that are not code
Spock
Spock
Node.js System: The Landing
Node.js System: The Landing
G*ワークショップ in 仙台 Grails(とことん)入門
G*ワークショップ in 仙台 Grails(とことん)入門
Backbone.js: Run your Application Inside The Browser
Backbone.js: Run your Application Inside The Browser
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
do ruby ao golang: o que aprendi criando um microserviço depois de 5000 commits
do ruby ao golang: o que aprendi criando um microserviço depois de 5000 commits
Introduction to open gl in android droidcon - slides
Introduction to open gl in android droidcon - slides
Richard Fridrich: Třesení stromem v JavaScriptu
Richard Fridrich: Třesení stromem v JavaScriptu
Más de Takuma Watabiki
「普通の設計」をするということ
「普通の設計」をするということ
Takuma Watabiki
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
Takuma Watabiki
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Takuma Watabiki
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
Takuma Watabiki
JGGUG Community LT 2016
JGGUG Community LT 2016
Takuma Watabiki
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
Takuma Watabiki
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Takuma Watabiki
Gradleどうでしょう
Gradleどうでしょう
Takuma Watabiki
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Takuma Watabiki
Spock's world
Spock's world
Takuma Watabiki
スーパー戦隊進化論
スーパー戦隊進化論
Takuma Watabiki
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
Takuma Watabiki
G*Magazineを読もう
G*Magazineを読もう
Takuma Watabiki
Groovyノススメ
Groovyノススメ
Takuma Watabiki
Más de Takuma Watabiki
(15)
「普通の設計」をするということ
「普通の設計」をするということ
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
Grailsでドメイン駆動設計を実践する時の勘所
Grailsでドメイン駆動設計を実践する時の勘所
JGGUG Community LT 2016
JGGUG Community LT 2016
Spring in-summer-gradle-hands on-withanswers
Spring in-summer-gradle-hands on-withanswers
システム開発を前進させるためのGradle導入法
システム開発を前進させるためのGradle導入法
Gradleどうでしょう
Gradleどうでしょう
Jjug 20140430 gradle_basic
Jjug 20140430 gradle_basic
Spock's world
Spock's world
スーパー戦隊進化論
スーパー戦隊進化論
Gws in fukuoka
Gws in fukuoka
Devsumi2012 JGGUG LT
Devsumi2012 JGGUG LT
G*Magazineを読もう
G*Magazineを読もう
Groovyノススメ
Groovyノススメ
Último
How to write a Business Continuity Plan
How to write a Business Continuity Plan
Databarracks
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Lars Bell
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Zilliz
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
Manik S Magar
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
Lonnie McRorey
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
NavinnSomaal
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
Sri Ambati
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Último
(20)
How to write a Business Continuity Plan
How to write a Business Continuity Plan
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
G*におけるソフトウェアテスト・シーズンIII
1.
G*
2010/07/24 g*workshop takuma.watabiki@jggug.org
2.
✤ ✤ ✤
Grails/Groovy ✤ Java ✤ twitter @bikisuke
3.
G*
4.
TDD
C) TDD
5.
-
BDD - C) TDD
6.
7.
Ora C)
8.
✤
BDD Spock ✤ Spock 0.4 ✤ Spock
9.
BDD
Spock
10.
BDD ✤
Behaviour Driven Development ✤ 2003 Dan North ✤
11.
BDD ✤ ✤ ✤
BDD ✤
12.
✤
As a ✤ I want ✤ so that
13.
✤
Given ✤ When ✤ Then
14.
Spock ✤
Java Groovy BDD ✤ Java / Groovy JUnit ✤ Data Driven ✤
15.
✤
Java 5 ✤ Groovy 1.6 or 1.7 ✤ JUnit 4.4
16.
✤
IDE ✤ Ant, Maven, Gradle ✤ IDE Eclipse / STS, IntelliJ IDEA ✤ GAE http://meetspock.appspot.com/
17.
Hello Spock
Specification import spock.lang.* class HelloSpock extends spock.lang.Specification { def cleanup() { println ' ' } def " "() { expect: name.size() == length where: name | length "Spock" | 5 } }
18.
BDD × Spock
19.
C) 2006
ADK
20.
As a I want so
that
21.
Given And When Then
22.
class MaskedRiderKabutoSpec extends
Specification { def tendoSouji = new TendoSouji() def " "() { given: " " tendoSouji.zector = KabutoZector.getZector() and: " " tendoSouji.attachRiderBelt() when: " " tendoSouji.setZector() then: " " tendoSouji.maskedRiderType == MaskedRiderType.ARMERED_FORM } }
23.
class KabutoZector {
private static KabutoZector instance = new KabutoZector() private KabutoZector() {} static def getZector() { return instance enum MaskedRiderType { } ARMERED_FORM, } class TendoSouji { RIDER_FORM def zector } class RiderBelt { def riderBelt def zector MaskedRiderType maskedRiderType boolean existZector() { return zector?:false attachRiderBelt() { def } riderBelt = new RiderBelt() def getMaskedArmer()} { if(existZector()) { def setZector() { return MaskedRiderType.ARMERED_FORM } riderBelt.zector = this.zector } maskedRiderType = riderBelt.getMaskedArmer() } } }
24.
C) 2006
ADK
25.
26.
Spock 0.4
27.
✤
JUnit Rules ✤ Stepwise ✤ ✤ ✤
28.
JUnit Rules
import org.junit.Rule import org.junit.rules.* import spock.lang.Specification import jggug.sample.rules.* class TimeoutRuleSpec extends Specification { // JUnit Rules Timeout @Rule timeout = new Timeout(5000) // Rules PrintLog @Rule printLog = new PrintLog() def " "() { Thread.sleep 4999 expect: 2 == 1+1 } }
29.
Stepwise @Stepwise class
StepwiseExtension extends Specification { def " "() { expect: true } def " "() { expect: false } def " "() { expect: true } }
30.
class OrderedInteractions extends
Specification { def " "() { def philip = Mock(DoubleDriver) def shotaro = Mock(DoubleDriver) when: philip.setGaiaMemory(' ') shotaro.setGaiaMemory(' ') then: 1 * philip.setGaiaMemory(' ') then: 1 * shotaro.setGaiaMemory(' ') } }
31.
abstract class AbstractSpec
extends Specification { def " "() { setup: ' ' } def " "() { setup: ' ' } } class ConcreteSpec1 extends AbstractSpec { def " "() { setup: ' ' } def " "() { setup: ' ' } }
32.
class BlockingVariableSpec extends
Specification { def " " () { def machine = new Machine() def result = new BlockingVariables<WorkResult>() machine.workDone << { r -> result.set(r) } when: machine.start() then: result.get() == WorkResult.OK cleanup: machine.shutdown() } }
33.
Spock
34.
Grails
35.
Grails 1.2 # grails
install-plugin spock-0.4-groovy-1.6 Grails 1.3 # grails install-plugin spock-0.4-groovy-1.7
36.
Spec // grails.plugin.spock.UnitSpec // grails.plugin.spock.ControllerSpec // TagLib grails.plugin.spock.TagLibSpec // grails.plugin.spock.IntegrationSpec // GSP grails.plugin.spock.GroovyPagesSpec
37.
import grails.plugin.spock.* class BookSpec
extends UnitSpec { def " "() { setup: mockDomain(Book) when: new Book(title:title, price:price).save() then: Book.findByTitle(title) != null where: title = 'Groovy-tan in Action' price = 6090 } }
38.
import grails.plugin.spock.* class BookIntegrationSpec
extends IntegrationSpec { def bookService def " "() { when: bookService.registBook(title, price) then: Book.findByTitle(title) != null where: title = 'Groovy-tan in Action' price = 6090 } }
39.
# grails test-app
:spock
40.
Grails ✓
Spec Specification ✓ . NG
41.
Java Eclipse
42.
Spock
43.
Eclipse
44.
45.
Groovy
46.
47.
48.
import spock.lang.Specification class CalculatorSpecTest
extends Specification { def ' '() { expect: Calculator.multiply(x, y) == result where: x | y | result '2' | '3' | 6 '-2'| '3' | -6 '-2'| '-3' | 6 '2' | '0' | 0 } }
49.
50.
Eclipse ✓
jar OK ✓ Java Groovy ✓
51.
52.
✤
BDD ✤ Spock Java/Groovy BDD ✤ Spock 0.4 ✤ Grails GSP ✤ Eclipse Java Spock
53.
Happy Spec’ing !
54.
55.
G*
2010/07/24 g*workshop takuma.watabiki@jggug.org
Descargar ahora