Introduction to ATDD with
         Cucumber and RSpec
         Cucumber     RSpec   ATDD
         Kenta Murata




Monday, September 26, 11             1
Kenta Murata                                            @mrkn


          CRuby committer
                bigdecimal maintainer
                OS X platform maintainer
                Interested in number system

          Ruby Sapporo



http://www.flickr.com/photos/recompile_net/5951998279/
Monday, September 26, 11                                         2
Monday, 1
2010 3 September 26, 11   3
http://rubyconf.org/schedule

Monday, September 26, 11       4
http://rubyconf.org/schedule

Monday, September 26, 11       4
Introduction to ATDD with
         Cucumber and RSpec
         Cucumber     RSpec   ATDD
         Kenta Murata




Monday, September 26, 11             5
ATDD?




Monday, September 26, 11   6
Acceptance Test
         Driven Development



Monday, September 26, 11      7
Monday, September 26, 11   8
“
         The idea of using an automated
         customer Acceptance Test was first
         proposed in April 2000 by Kent Beck.
         Instead of a stakeholder handing over
         a requirements document to the
         developers without much opportunity
         for feedback, the developer and
         stakeholder collaborate together to
         write a test that the computer can run.


Monday, September 26, 11                           9
“                      2000 4   Kent Beck




Monday, September 26, 11                        10
“                      2000 4   Kent Beck




Monday, September 26, 11                        11
“                      2000 4   Kent Beck




Monday, September 26, 11                        12
“                      2000 4   Kent Beck




Monday, September 26, 11                        13
“                      2000 4   Kent Beck




Monday, September 26, 11                        14
http://pragprog.com/book/hwcuc/the-cucumber-book
Monday, September 26, 11                           15
“    The test fails at the time of writing,
         because no code has been written yet,
         but captures what the stakeholder
         cares about and gives everyone a
         clear signal as to what it will take to be
         done.



Monday, September 26, 11                              16
“
Monday, September 26, 11   17
Unit tests v.s. Acceptance Test




Monday, September 26, 11                   18
Unit tests




Monday, September 26, 11   19
Acceptance tests




                    Feature (Usecase)
                    Scenario




Monday, September 26, 11                20
Feature




Monday, September 26, 11             21
Feature




Monday, September 26, 11   22
Monday, September 26, 11   23
http://pragprog.com/book/hwcuc/the-cucumber-book
Monday, September 26, 11                           24
Cucumber
         Feature:




               Scenario:
                    Given       “           ”
                    When    “       ”
                    Then
                    And         “       ”




Monday, September 26, 11                        25
Given /             “([^”]*)”          / do |arg|
           ...
         end

         When /            “([^”]*)”            / do |arg|
           ...
         end

         Then /                          / do
           ...
         end

         Then /             “([^”]*)”      / do |arg|
           ...
         end




Monday, September 26, 11                                     26
Cucumber


                           Feature   Scenario




Monday, September 26, 11                        27
1



                                                     red 2




                                                             3
                                                     red



                                                  RSpec
                                                                           4
                                      refactor                     green
                                              5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                 28
1



                                                     red 2




                                                             3
                                                     red



                                                  RSpec
                                                                           4
                                      refactor                     green
                                              5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                 28
1



                                                     red 2




                                                             3
                                                     red



                                                  RSpec
                                                                           4
                                      refactor                     green
                                              5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                 28
1



                                                     red 2




                           (RSpec)                           3
                                                     red



                                                  RSpec
                                                                           4
                                      refactor                     green
                                              5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                 28
1



                                                     red 2



                                                                                   view   spec

                           (RSpec)                           3
                                                     red



                                                  RSpec
                                                                           4
                                      refactor                     green
                                              5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                         28
1



                                                     red 2



                                                                                   view   spec

                           (RSpec)                           3
                                                     red
                                                                                 view

                                                  RSpec
                                                                           4
                                      refactor                     green
                                              5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                         28
1



                                                     red 2



                                                                                   view   spec

                           (RSpec)                           3
                                                     red
                                                                                 view

                                                  RSpec
                                                                           4
                                      refactor                     green
      view                                    5

                           refactor                                            green 6
                                       7
                                                 Cucumber


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                         28
1



                                                     red 2



                                                                                    view     spec

                           (RSpec)                           3
                                                     red
                                                                                 view

                                                  RSpec
                                                                           4
                                      refactor                     green
      view                                    5

                           refactor                                            green 6
                                       7
                                                 Cucumber
                                                                                (cucumber)


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                            28
1



                                                     red 2



                                                                                    view     spec

                           (RSpec)                           3
                                                     red
                                                                                 view

                                                  RSpec
                                                                           4
                                      refactor                     green
      view                                    5

                           refactor                                            green 6
                                       7
                                                 Cucumber
                                                                                (cucumber)


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                            28
1



                                                     red 2



                                                                                    view     spec

                           (RSpec)                           3
                                                     red
                                                                                 view

                                                  RSpec
                                                                           4
                                      refactor                     green
      view                                    5

                           refactor                                            green 6
                                       7
                                                 Cucumber
                                                                                (cucumber)


The RSpec Book, p.285                      (start with Cucumber)
Monday, September 26, 11                                                                            28
Demonstration




Monday, September 26, 11   29
http://tatsu-zine.com/books/cuke
Monday, September 26, 11           30
http://pragprog.com/book/achbd/the-rspec-book
Monday, September 26, 11                        31
http://pragprog.com/book/hwcuc/the-cucumber-book
Monday, September 26, 11                           32
http://pragprog.com/book/rcctr/continuous-testing
Monday, September 26, 11                            33
http://pragprog.com/book/jgade/test-driven-development-for-embedded-c
Monday, September 26, 11                                                34
http://cuke4ninja.com/
Monday, September 26, 11   35
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06856-0
Monday, September 26, 11                                          36
http://www.informit.com/store/product.aspx?isbn=0321503627
Monday, September 26, 11                                     37
http://www.informit.com/store/product.aspx?isbn=0321601912
Monday, September 26, 11                                     38

Introduction to ATDD with Cucumber and RSpec