This document discusses an introduction to acceptance test-driven development (ATDD) using Cucumber and RSpec. It explains that ATDD involves collaborating with stakeholders to write automated acceptance tests before development begins. The tests describe features and scenarios in a way that stakeholders can understand. Cucumber uses a plain language format to define tests and map them to code via step definitions. RSpec is also used for unit testing. The document provides examples of Cucumber feature files and touches on integrating Cucumber with RSpec during the development process.
1. Introduction to ATDD with
Cucumber and RSpec
Cucumber RSpec ATDD
Kenta Murata
Monday, September 26, 11 1
2. 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
10. “
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
11. “ 2000 4 Kent Beck
Monday, September 26, 11 10
12. “ 2000 4 Kent Beck
Monday, September 26, 11 11
13. “ 2000 4 Kent Beck
Monday, September 26, 11 12
14. “ 2000 4 Kent Beck
Monday, September 26, 11 13
15. “ 2000 4 Kent Beck
Monday, September 26, 11 14
17. “ 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
26. Cucumber
Feature:
Scenario:
Given “ ”
When “ ”
Then
And “ ”
Monday, September 26, 11 25
27. Given / “([^”]*)” / do |arg|
...
end
When / “([^”]*)” / do |arg|
...
end
Then / / do
...
end
Then / “([^”]*)” / do |arg|
...
end
Monday, September 26, 11 26
28. Cucumber
Feature Scenario
Monday, September 26, 11 27
29. 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
30. 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
31. 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
32. 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
33. 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
34. 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
35. 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
36. 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
37. 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
38. 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