Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

BDD Testing with Cucumber

Dev.Talk. Zürich. 19. Sept 2012


BDD

Business Technology
• Domain
• Test driven
driven
development
design
Core Principles
1. Enough is enough do as much
planning, analysis, and design as you
need, but no more.
2. Deliver stakeholder value everything
you do should deliver value or increase
your ability to do so.
3. It’s a behavior everyone involved should
have the same way of talking about the
system and what it does.
describe the
behavior
of your software
in a very understandable
way
1 Describe
Behaviour

2 Write step
5 Run and pass
definition

4 Write code to
3 Run and fail
make step pass
Behavior
Feature: <short description>
<story> WHO? As a <role>
WHAT? I want <feature>
<scenario 1> WHY? so that <business
<scenario n> value>

Scenario: <description>
Given <preconditions, context>
[And] <additional preconditions>
When <action, behaviour>
Then <postconditions>
[And] <additional postconditions>
Step definition
• Regex based
• Reusable
• Cucumber gives you copy & paste code
Human Language support

# language: de
Funktionalität: Addition
Um dumme Fehler zu vermeiden
möchte ich als Matheidiot
die Summe zweier Zahlen gesagt bekommen

Szenariogrundriss: Zwei Zahlen hinzufügen


Angenommen ich habe <Eingabe_1> in den Taschenrechner eingegeben
Und ich habe <Eingabe_2> in den Taschenrechner eingegeben
Wenn ich <Knopf> drücke
Dann sollte das Ergebniss auf dem Bildschirm <Ausgabe> sein

Beispiele:
| Eingabe_1 | Eingabe_2 | Knopf | Ausgabe |
| 20 | 30 | add | 50 |
| 2 | 5 | add | 7 |
| 0 | 40 | add | 40 |
What about Java, .net, …?
Java: Cucumber-Jvm
• Pure Java
• Supports:
Java, JavaScript, JRuby, Scala, Python, G
roovy, Ioke

.NET: IronRuby
• Cucumber Wrapper for IronRuby
Testing possibilities…
• Selenium browser testing
• Webrat acceptance testing
• Interface testing (example mozo poc)
• Many many more – just take a look at the
cucumber tutorials
More Information
https://github.com/cucumber/cucumber/wiki

http://behaviour-driven.org/

You might also like