SlideShare a Scribd company logo
Using BDD to Solve communication problems
RODRIGO URUBATAN
• SOFTWARE DEVELOPER SINCE 1997
• WRITER, RUNNER,CROSSFITTER, SPEAKER, A
LITTLELAZY, ANDIN LOVE WITH REMOTE WORK
• HTTP://URUBATAN.COM.BR
• HTTP://SOBRECODIGO.COM
• HTTP://TWITTER.COM/URUBATAN
• HTTP://GITHUB.COM/URUBATAN
WHAT IS THE BIGGEST PROBLEM IN SOFTWARE
PROJECTS?
WHAT IS THE ROOT CAUSE FOR THIS PROBLEM?
WHAT DO WE NEED TO SOLVE THIS PROBLEM?
HOW TO SOLVE THIS PROBLEM?
OK, BUT HOW’S THATGOING TO HELP DESIGN SOFTWARE?
• BUSINESS VALUEIS THE KEY
• WHAT IS THE NEXTIMPORTANT THING THE SYSTEM DOES NOTDO YET?
• USE THE BUSINESS LANGUAGE TO SPECIFY THE SOFTWARE
• USE THE BUSINESS LANGUAGE TO TEST THE SOFTWARE
• USE THE BUSINESS LANGUAGE TO WRITE THE SOFTWARE
• USE THE BUSINESS LANGUAGE TO VALIDATE THE SOFTWARE
Using BDD to Solve communication problems
USER STORIES!!
• AS A …
• I WANT TO ...
• SO THAT ...
• AS A BANK CLIENT
• I WANT TO USE THE CASH MACHINE
• SO THAT I CAN TAKE MONEY FROM MY ACCOUNT
BUT IT IS NOT ENOUGH!
BEHAVIOUR SPECIFICATION
• CONTEXT
• ACTIONS
• VERIFICATION
• GIVEN THERE ISMONEY IN MY ACCOUNT
• AND I HAVE A VALID CARD
• AND THE MONEY DISPENSER HASMONEY
• WHEN I ASK THE MACHINE FOR MONEY
• THEN THE MONEYSHOULD BE SUBTRACTED FROM MY
ACCOUNT
• AND THE MONEY SHOULD BEDELIVERED TO ME
• AND MY CARD SHOULD BERETURNED
BUT HOW MUCHDETAILS CAN I GET?
HAVE YOU SEEN THAT SINTAXE ANYWHERE BEFORE?
DID YOU REMEMBER WHERE?
• IN TESTER SPREADSHEETS, SOMETIMES WITHCOLUMNS INSTEAD OF OF GIVEN/WHEN/THEN
• IT ISALMOST THE SYNTAX FOR THE GHERKIN LANGUAGE!!
WHAT IF I USE THE SAME BUSINESS WORDS TO NAME THINGS IN CODE?
LET’S TRY THAT!
• GIVEN THERE ISMONEY IN MY ACCOUNT
• AND I HAVE A VALID CARD
• AND THE MONEY DISPENSER HASMONEY
• WHEN I ASK THE MACHINE FOR MONEY
• THEN THE MONEYSHOULD BE SUBTRACTED FROM MY
ACCOUNT
• AND THE MONEY SHOULD BEDELIVERED TO ME
• AND MY CARD SHOULD BERETURNED
• ACCOUNT.HAS_ENOUGH_MONEY?(VALUE)
• CARD.VALID?
• DISPENSER.HAS_MONEY?
• MACHINE.I_WANT(VALUE)
• ACCOUNT.SUBTRACT(VALUE)
• MACHINE.DELIVER_MONEY(VALUE)
• MACHINE.RETURN_CARD
WOW! EVERYONE TALKS THE SAME LANGUAGE!
Using BDD to Solve communication problems
BDD DEVELOPMENT CYCLE
Talk to the client, write a
user story or
Select a user story
Detail the story
into scenarions
Automate scenarios
with selected tool
Run tests and see
them fail
Write ony the
code to make
tests pass
Refactor
Almost the same as TDD?
OK, HOW IS THAT DIFFERENT FROM TDD “RED, GREEN,
REFACTOR”?
• THE MAIN FOCUS ISNOT THE TEST, IN REALITY THE AUTOMATE STEP CAN BE SKIPED SOMETIMES
• THE MAIN FOCUS ISON COMMUNICATION
• TEST BUSINESS BEHAVIOUR NOTLANGUAGE DEPENDENT FUNCTIONS
• BEHAVIOUR IS MORE IMPORTANT TO THE SOFTWARE THAN HOW ITWAS IMPLEMENTED
• THE MAIN FOCUS IN USINGA UBIQUITOUSLANGUAGE LIKEIN DDD
• USING THE UBIQUITOUSLANGUAGE, THE USER STORY TEMPLATE ANDTHE SCENARIO TEMPLATE THE
COMMUNICATION WITH THE ENTIRETEAM WILL IMPROVE ALOT
HAVEN’T WE FORGOT ABOUT TEST AUTOMATION?
THAT SAME CONTEXT SINTAXE CAN BE AUTOMATED BY:
• CUCUMBER USING GHERKIN - HTTPS://CUCUMBER.IO/
• THOUGHTWORKS GAUGE - HTTP://GETGAUGE.IO/
• RSPEC CAN USE THAT SYNTAX TO NAME THE TEST SPECS
• JBEHAVE WAS CREATED THINKINGABOUT THAT
• SPECFLOW USINGGHERKIN - HTTP://WWW.SPECFLOW.ORG/
SAMPLE GHERKIN CODE
FEATURE:A SAMPLE CODE FORMY PRESENTATION
AS A SPEAKER
I WANT TO HAVE SOME CODE SAMPLES
SO THAT EVERYONE UNDERSTAND WHAT I'M TALKING ABOUT
SCENARIO: DOING A SIMPLE GOOGLE SEARCH
GIVENI'M ONTHE GOOGLE HOME PAGE
WHENIFILL THE SEARCH FIELD WITH "URUBATAN"
THENIWANT TO SEE "MY WEB PAGE"INTHE RESULTS
AND I WANT TO SEE "MY FACEBOOKPROFILE"INTHE RESULTS
SAMPLE CUCUMBERRUBY CODE
GIVEN(/^I'M ONTHE GOOGLE HOME PAGE$/) DO
PENDING # EXPRESSTHE REGEXP ABOVE WITHTHE CODE YOUWISH YOU HAD
END
WHEN(/^IFILL THE SEARCH FIELD WITH "(.*?)"$/) DO |ARG1|
PENDING # EXPRESSTHE REGEXP ABOVE WITHTHE CODE YOUWISH YOU HAD
END
THEN(/^IWANT TO SEE "(.*?)"INTHE RESULTS$/) DO |ARG1|
PENDING # EXPRESSTHE REGEXP ABOVE WITHTHE CODE YOUWISH YOU HAD
END
SAMPLE CUCUMBERJAVA CODE
public class MyStepdefs {
@cucumber.api.java.en.Then("^I want to see "([^"]*)" in the results$")
public void iWantToSeeInTheResults(String arg0) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new cucumber.api.PendingException();
}
@cucumber.api.java.en.When("^I fill the search field with "([^"]*)"$")
public void iFillTheSearchFieldWith(String arg0) throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new cucumber.api.PendingException();
}
@cucumber.api.java.en.Given("^I'm on the google home page$")
public void iMOnTheGoogleHomePage() throws Throwable {
// Write code here that turns the phrase above into concrete actions
throw new cucumber.api.PendingException();
}
}
SAMPLE GAUGE CODE
A SAMPLE CODE FORMY PRESENTATION
=============
AS A SPEAKER, I WANT TO HAVE SOME CODE SAMPLES, SO THATEVERYONE UNDERSTAND WHATI'M TALKING ABOUT
DOING A SIMPLE GOOGLE SEARCH
-----------
*I'M ONTHE GOOGLE HOME PAGE
*I FILL THE SEARCH FIELD WITH "URUBATAN"
*I WANT TO SEE "MY WEB PAGE"INTHE RESULTS
*I WANT TO SEE "MY FACEBOOKPROFILE"INTHE RESULTS
SAMPLE GAUGE JAVA CODE
PUBLIC CLASS SAMPLEGAUGE {
@STEP("I'M ON THE GOOGLE HOME PAGE")
PUBLIC VOID GOTOGOOGLE() {
// STEP IMPLEMENTATION
}
@STEP("I FILL THE SEARCH FIELD WITH <VALUE>")
PUBLIC VOID FILLFIELD(STRING VALUE) {
// STEP IMPLEMENTATION
}
@STEP("I WANT TO SEE <ADDR> IN THE RESULTS")
PUBLIC VOID CHECKVALUE(STRING VALUE) {
// STEP IMPLEMENTATION
}
}
SAMPLE GAUGE RUBY CODE
STEP "I'M ONTHE GOOGLE HOME PAGE" DO
END
STEP "I FILL THE SEARCH FIELD WITH<NAME>" DO |NAME|
END
STEP "I WANT TOSEE <ADDRESS> INTHE RESULTS" |ADDRESS|
END

More Related Content

PPTX
Alexa Smart Home Skill
PPTX
Alexa Skills Kit
PPTX
Amazon Alexa - Introduction & Custom Skills
PPTX
Coffee script
PPTX
How to Solve Problems with Effective Communication
PPTX
Goodwin's theory kooks naive
PPTX
Week 02 - Interpersonal Communication
PPTX
CARA SAGITAL DEL CEREBRO
Alexa Smart Home Skill
Alexa Skills Kit
Amazon Alexa - Introduction & Custom Skills
Coffee script
How to Solve Problems with Effective Communication
Goodwin's theory kooks naive
Week 02 - Interpersonal Communication
CARA SAGITAL DEL CEREBRO

Viewers also liked (16)

PPTX
Cell theories
PPT
Psychology Seminar Series 2013 - Ruth Laidler
PDF
A constructive naive set theory and infinity
PPTX
Tema 2. La célula
PPT
Templates exception handling
PPTX
Unit 5 scientific theory - P1, M1 and D1
PPTX
Soft skills for effective interpersonal communication
ODP
Social Thinking
PPTX
Theories of Communication
PPT
Basic Theories Of Communication By Manish Sharma
PPT
Introduction To Communication Theory
PPTX
Formal communication in an organization
PPTX
Communication Theories
PPTX
communication errors
PPT
Communication Concepts, Theories And Models1
PPT
Conflict Management
Cell theories
Psychology Seminar Series 2013 - Ruth Laidler
A constructive naive set theory and infinity
Tema 2. La célula
Templates exception handling
Unit 5 scientific theory - P1, M1 and D1
Soft skills for effective interpersonal communication
Social Thinking
Theories of Communication
Basic Theories Of Communication By Manish Sharma
Introduction To Communication Theory
Formal communication in an organization
Communication Theories
communication errors
Communication Concepts, Theories And Models1
Conflict Management
Ad

Similar to Using BDD to Solve communication problems (20)

PPTX
Rubyconf2016 - Solving communication problems in distributed teams with BDD
PDF
resolvendo problemas de comunicação em equipes distribuídas com bdd
KEY
Ruby on Rails Training - Module 2
PPTX
BDD testing with cucumber
PDF
Smalltalks 2011 - Bringing BDD ideas to Pharo
PDF
Growing software from examples
PPTX
Cucumber BDD
PDF
ATDD BY Example With Cucumber
PDF
Behavior Driven Development
PPTX
Mspec talk
PPTX
Specifications test automation pyramid public
PPTX
Behavior Driven Development - TdT@Cluj #15
PPTX
BDD Primer
PDF
Exploring No Mans Land with Keyword-Driven Testing
PDF
Behaviour Driven Development and Thinking About Testing
 
PDF
Bdd and-testing
PDF
Test data article
PPTX
Xamariners - BDD + Mobile
PDF
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
PDF
Expo qa from user stories to automated acceptance tests with bdd
Rubyconf2016 - Solving communication problems in distributed teams with BDD
resolvendo problemas de comunicação em equipes distribuídas com bdd
Ruby on Rails Training - Module 2
BDD testing with cucumber
Smalltalks 2011 - Bringing BDD ideas to Pharo
Growing software from examples
Cucumber BDD
ATDD BY Example With Cucumber
Behavior Driven Development
Mspec talk
Specifications test automation pyramid public
Behavior Driven Development - TdT@Cluj #15
BDD Primer
Exploring No Mans Land with Keyword-Driven Testing
Behaviour Driven Development and Thinking About Testing
 
Bdd and-testing
Test data article
Xamariners - BDD + Mobile
Webinar-From user stories to automated acceptance tests with BDD-Eduardo Riol
Expo qa from user stories to automated acceptance tests with bdd
Ad

More from Rodrigo Urubatan (20)

PPTX
Ruby code smells
PPTX
Data science in ruby is it possible? is it fast? should we use it?
PDF
Data science in ruby, is it possible? is it fast? should we use it?
PPTX
2018 the conf put git to work - increase the quality of your rails project...
PPTX
2018 RubyHACK: put git to work - increase the quality of your rails project...
PDF
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
PDF
Your first game with unity3d framework
PDF
Tdc Floripa 2017 - 8 falácias da programação distribuída
PDF
vantagens e desvantagens de trabalhar remoto
PDF
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
PDF
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
PDF
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
PDF
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
PDF
Ruby para programadores java
PPTX
Treinamento html5, css e java script apresentado na HP
PPTX
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
PPTX
Mini curso rails 3
PPT
Aplicações Hibridas com Phonegap e HTML5
PPTX
Git presentation to some coworkers some time ago
PDF
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails
Ruby code smells
Data science in ruby is it possible? is it fast? should we use it?
Data science in ruby, is it possible? is it fast? should we use it?
2018 the conf put git to work - increase the quality of your rails project...
2018 RubyHACK: put git to work - increase the quality of your rails project...
TDC2017 - POA - Aprendendo a usar Xamarin para desenvolver aplicações moveis ...
Your first game with unity3d framework
Tdc Floripa 2017 - 8 falácias da programação distribuída
vantagens e desvantagens de trabalhar remoto
TDC2015 Porto Alegre - Interfaces ricas com Rails e React.JS
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
TDC São Paulo 2015 - Interfaces Ricas com Rails e React.JS
Full Text Search com Solr, MySQL Full text e PostgreSQL Full Text
Ruby para programadores java
Treinamento html5, css e java script apresentado na HP
Ruby on rails impressione a você mesmo, seu chefe e seu cliente
Mini curso rails 3
Aplicações Hibridas com Phonegap e HTML5
Git presentation to some coworkers some time ago
Intrudução ao Behavior Driven Development (BDD) com Ruby on Rails

Recently uploaded (20)

PDF
WOOl fibre morphology and structure.pdf for textiles
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
August Patch Tuesday
PDF
Hybrid model detection and classification of lung cancer
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Encapsulation theory and applications.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
project resource management chapter-09.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
WOOl fibre morphology and structure.pdf for textiles
Group 1 Presentation -Planning and Decision Making .pptx
Assigned Numbers - 2025 - Bluetooth® Document
August Patch Tuesday
Hybrid model detection and classification of lung cancer
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
OMC Textile Division Presentation 2021.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Approach and Philosophy of On baking technology
Programs and apps: productivity, graphics, security and other tools
Encapsulation theory and applications.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
cloud_computing_Infrastucture_as_cloud_p
Univ-Connecticut-ChatGPT-Presentaion.pdf
Enhancing emotion recognition model for a student engagement use case through...
A comparative study of natural language inference in Swahili using monolingua...
project resource management chapter-09.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Using BDD to Solve communication problems

  • 2. RODRIGO URUBATAN • SOFTWARE DEVELOPER SINCE 1997 • WRITER, RUNNER,CROSSFITTER, SPEAKER, A LITTLELAZY, ANDIN LOVE WITH REMOTE WORK • HTTP://URUBATAN.COM.BR • HTTP://SOBRECODIGO.COM • HTTP://TWITTER.COM/URUBATAN • HTTP://GITHUB.COM/URUBATAN
  • 3. WHAT IS THE BIGGEST PROBLEM IN SOFTWARE PROJECTS?
  • 4. WHAT IS THE ROOT CAUSE FOR THIS PROBLEM?
  • 5. WHAT DO WE NEED TO SOLVE THIS PROBLEM?
  • 6. HOW TO SOLVE THIS PROBLEM?
  • 7. OK, BUT HOW’S THATGOING TO HELP DESIGN SOFTWARE? • BUSINESS VALUEIS THE KEY • WHAT IS THE NEXTIMPORTANT THING THE SYSTEM DOES NOTDO YET? • USE THE BUSINESS LANGUAGE TO SPECIFY THE SOFTWARE • USE THE BUSINESS LANGUAGE TO TEST THE SOFTWARE • USE THE BUSINESS LANGUAGE TO WRITE THE SOFTWARE • USE THE BUSINESS LANGUAGE TO VALIDATE THE SOFTWARE
  • 9. USER STORIES!! • AS A … • I WANT TO ... • SO THAT ... • AS A BANK CLIENT • I WANT TO USE THE CASH MACHINE • SO THAT I CAN TAKE MONEY FROM MY ACCOUNT
  • 10. BUT IT IS NOT ENOUGH!
  • 11. BEHAVIOUR SPECIFICATION • CONTEXT • ACTIONS • VERIFICATION • GIVEN THERE ISMONEY IN MY ACCOUNT • AND I HAVE A VALID CARD • AND THE MONEY DISPENSER HASMONEY • WHEN I ASK THE MACHINE FOR MONEY • THEN THE MONEYSHOULD BE SUBTRACTED FROM MY ACCOUNT • AND THE MONEY SHOULD BEDELIVERED TO ME • AND MY CARD SHOULD BERETURNED
  • 12. BUT HOW MUCHDETAILS CAN I GET?
  • 13. HAVE YOU SEEN THAT SINTAXE ANYWHERE BEFORE?
  • 14. DID YOU REMEMBER WHERE? • IN TESTER SPREADSHEETS, SOMETIMES WITHCOLUMNS INSTEAD OF OF GIVEN/WHEN/THEN • IT ISALMOST THE SYNTAX FOR THE GHERKIN LANGUAGE!!
  • 15. WHAT IF I USE THE SAME BUSINESS WORDS TO NAME THINGS IN CODE?
  • 16. LET’S TRY THAT! • GIVEN THERE ISMONEY IN MY ACCOUNT • AND I HAVE A VALID CARD • AND THE MONEY DISPENSER HASMONEY • WHEN I ASK THE MACHINE FOR MONEY • THEN THE MONEYSHOULD BE SUBTRACTED FROM MY ACCOUNT • AND THE MONEY SHOULD BEDELIVERED TO ME • AND MY CARD SHOULD BERETURNED • ACCOUNT.HAS_ENOUGH_MONEY?(VALUE) • CARD.VALID? • DISPENSER.HAS_MONEY? • MACHINE.I_WANT(VALUE) • ACCOUNT.SUBTRACT(VALUE) • MACHINE.DELIVER_MONEY(VALUE) • MACHINE.RETURN_CARD
  • 17. WOW! EVERYONE TALKS THE SAME LANGUAGE!
  • 19. BDD DEVELOPMENT CYCLE Talk to the client, write a user story or Select a user story Detail the story into scenarions Automate scenarios with selected tool Run tests and see them fail Write ony the code to make tests pass Refactor Almost the same as TDD?
  • 20. OK, HOW IS THAT DIFFERENT FROM TDD “RED, GREEN, REFACTOR”? • THE MAIN FOCUS ISNOT THE TEST, IN REALITY THE AUTOMATE STEP CAN BE SKIPED SOMETIMES • THE MAIN FOCUS ISON COMMUNICATION • TEST BUSINESS BEHAVIOUR NOTLANGUAGE DEPENDENT FUNCTIONS • BEHAVIOUR IS MORE IMPORTANT TO THE SOFTWARE THAN HOW ITWAS IMPLEMENTED • THE MAIN FOCUS IN USINGA UBIQUITOUSLANGUAGE LIKEIN DDD • USING THE UBIQUITOUSLANGUAGE, THE USER STORY TEMPLATE ANDTHE SCENARIO TEMPLATE THE COMMUNICATION WITH THE ENTIRETEAM WILL IMPROVE ALOT
  • 21. HAVEN’T WE FORGOT ABOUT TEST AUTOMATION?
  • 22. THAT SAME CONTEXT SINTAXE CAN BE AUTOMATED BY: • CUCUMBER USING GHERKIN - HTTPS://CUCUMBER.IO/ • THOUGHTWORKS GAUGE - HTTP://GETGAUGE.IO/ • RSPEC CAN USE THAT SYNTAX TO NAME THE TEST SPECS • JBEHAVE WAS CREATED THINKINGABOUT THAT • SPECFLOW USINGGHERKIN - HTTP://WWW.SPECFLOW.ORG/
  • 23. SAMPLE GHERKIN CODE FEATURE:A SAMPLE CODE FORMY PRESENTATION AS A SPEAKER I WANT TO HAVE SOME CODE SAMPLES SO THAT EVERYONE UNDERSTAND WHAT I'M TALKING ABOUT SCENARIO: DOING A SIMPLE GOOGLE SEARCH GIVENI'M ONTHE GOOGLE HOME PAGE WHENIFILL THE SEARCH FIELD WITH "URUBATAN" THENIWANT TO SEE "MY WEB PAGE"INTHE RESULTS AND I WANT TO SEE "MY FACEBOOKPROFILE"INTHE RESULTS
  • 24. SAMPLE CUCUMBERRUBY CODE GIVEN(/^I'M ONTHE GOOGLE HOME PAGE$/) DO PENDING # EXPRESSTHE REGEXP ABOVE WITHTHE CODE YOUWISH YOU HAD END WHEN(/^IFILL THE SEARCH FIELD WITH "(.*?)"$/) DO |ARG1| PENDING # EXPRESSTHE REGEXP ABOVE WITHTHE CODE YOUWISH YOU HAD END THEN(/^IWANT TO SEE "(.*?)"INTHE RESULTS$/) DO |ARG1| PENDING # EXPRESSTHE REGEXP ABOVE WITHTHE CODE YOUWISH YOU HAD END
  • 25. SAMPLE CUCUMBERJAVA CODE public class MyStepdefs { @cucumber.api.java.en.Then("^I want to see "([^"]*)" in the results$") public void iWantToSeeInTheResults(String arg0) throws Throwable { // Write code here that turns the phrase above into concrete actions throw new cucumber.api.PendingException(); } @cucumber.api.java.en.When("^I fill the search field with "([^"]*)"$") public void iFillTheSearchFieldWith(String arg0) throws Throwable { // Write code here that turns the phrase above into concrete actions throw new cucumber.api.PendingException(); } @cucumber.api.java.en.Given("^I'm on the google home page$") public void iMOnTheGoogleHomePage() throws Throwable { // Write code here that turns the phrase above into concrete actions throw new cucumber.api.PendingException(); } }
  • 26. SAMPLE GAUGE CODE A SAMPLE CODE FORMY PRESENTATION ============= AS A SPEAKER, I WANT TO HAVE SOME CODE SAMPLES, SO THATEVERYONE UNDERSTAND WHATI'M TALKING ABOUT DOING A SIMPLE GOOGLE SEARCH ----------- *I'M ONTHE GOOGLE HOME PAGE *I FILL THE SEARCH FIELD WITH "URUBATAN" *I WANT TO SEE "MY WEB PAGE"INTHE RESULTS *I WANT TO SEE "MY FACEBOOKPROFILE"INTHE RESULTS
  • 27. SAMPLE GAUGE JAVA CODE PUBLIC CLASS SAMPLEGAUGE { @STEP("I'M ON THE GOOGLE HOME PAGE") PUBLIC VOID GOTOGOOGLE() { // STEP IMPLEMENTATION } @STEP("I FILL THE SEARCH FIELD WITH <VALUE>") PUBLIC VOID FILLFIELD(STRING VALUE) { // STEP IMPLEMENTATION } @STEP("I WANT TO SEE <ADDR> IN THE RESULTS") PUBLIC VOID CHECKVALUE(STRING VALUE) { // STEP IMPLEMENTATION } }
  • 28. SAMPLE GAUGE RUBY CODE STEP "I'M ONTHE GOOGLE HOME PAGE" DO END STEP "I FILL THE SEARCH FIELD WITH<NAME>" DO |NAME| END STEP "I WANT TOSEE <ADDRESS> INTHE RESULTS" |ADDRESS| END