aslakhellesoy-cucumber 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -29,3 +29,33 @@ I haven't written a tutorial yet. Take a look at the "examples":http://github.co
29
29
  Each example directory has a Rakefile, and you can run the features with
30
30
 
31
31
  <pre><code>rake features</code></pre>
32
+
33
+ h2. Background and Credits
34
+
35
+ Cucumber is a rewrite of RSpec's "Story runner", which was originally written by Dan North. Dan's original
36
+ implementation required that stories be written in Ruby. Shortly after, David Chelimsky added
37
+ "plain text":http://blog.davidchelimsky.net/articles/2007/10/21/story-runner-in-plain-english support.
38
+
39
+ This brought executable stories a little closer to non-technical users, which is one of the target audiences
40
+ for this kind of tool.
41
+
42
+ However, the RSpec Story runner has several shortcomings which is rather common for tools that move into new territory.
43
+ Some of the biggest problems with it are:
44
+
45
+ * Hard to get started with. A special "all.rb" file must be written before it can be used.
46
+ * No out of the box Rake support, which puts a lot of people off.
47
+ * No i18n, so if you want to write stories in a different language than English you're out of luck.
48
+ * Poor error reporting. No way to know on what line a plain text story failed during execution or parsing.
49
+ * Limited colouring of output.
50
+ * No simple way to execute only one scenario.
51
+ * No command line tool to run stories.
52
+
53
+ While all of this could have been fixed in the existing codebase, I figured it would be easier to do a rewrite from scratch.
54
+ I also had some ideas for extensions of the story grammar, so I decided to use "Treetop":http://treetop.rubyforge.org/
55
+ and base it on a proper "grammar":http://github.com/aslakhellesoy/cucumber/tree/master/lib/cucumber/treetop_parser/feature.treetop.erb
56
+
57
+ Cucumber addresses all of the shortcomings of RSpec's Story runner. If the community likes it, we'll consider phasing out
58
+ the RSpec story runner.
59
+
60
+ The term "Feature" has been adopted in favour of "Story" because I believe it is a more appropriate term. A feature's scenarios
61
+ typically increases over time - fed by several user stories.
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new do |t|
5
+ t.cucumber_opts = "--format pretty"
6
+ end
@@ -0,0 +1,16 @@
1
+ Feature: Addition
2
+ As a math idiot
3
+ I want to be told the sum of two numbers
4
+ So that I don't make silly mistakes
5
+
6
+ Scenario: Add two numbers
7
+ Given I have entered 50 into the calculator
8
+ And I have entered 70 into the calculator
9
+ When I add
10
+ Then the result should be 121 on the screen
11
+ And the result class should be Fixnum
12
+
13
+ | input_1 | input_2 | output | class |
14
+ | 20 | 30 | 50 | Fixnum |
15
+ | 2 | 5 | 7 | Fixnum |
16
+ | 20 | 40 | 80 | Number |
@@ -0,0 +1,12 @@
1
+ Feature: Division
2
+ As a math genius
3
+ I want to be told the division of two floats
4
+ So that I don't make silly mistakes
5
+
6
+ Scenario: Regular numbers
7
+ Given I have entered 3 into the calculator
8
+ And I have entered 2 into the calculator
9
+ When I press divide
10
+ Then the result should be 1.5 on the screen
11
+ And the result class should be Float
12
+ And it should rain on Friday
@@ -0,0 +1,31 @@
1
+ require 'spec'
2
+ $:.unshift(File.dirname(__FILE__) + '/../../lib')
3
+ require 'calculator'
4
+
5
+ Before do
6
+ @calc = Calculator.new
7
+ end
8
+
9
+ After do
10
+ end
11
+
12
+ Given /I have entered (\d+) into the calculator/ do |n|
13
+ @calc.push n.to_i
14
+ end
15
+
16
+ When /I press (\w+)/ do |op|
17
+ @result = @calc.send op
18
+ end
19
+
20
+ Then /the result should be (.*) on the screen/ do |result|
21
+ @result.should == result.to_f
22
+ end
23
+
24
+ Then /the result class should be (\w*)/ do |class_name|
25
+ @result.class.name.should == class_name
26
+ end
27
+
28
+ Given /it should rain on (\w+)/ do |day|
29
+ @calc.rain?(day).should == true
30
+ end
31
+
@@ -0,0 +1,18 @@
1
+ class Calculator
2
+ def push(n)
3
+ @args ||= []
4
+ @args << n
5
+ end
6
+
7
+ def add
8
+ @args.inject(0){|n,sum| sum+=n}
9
+ end
10
+
11
+ def divide
12
+ @args[0].to_f / @args[1].to_f
13
+ end
14
+
15
+ def rain?(day)
16
+ true
17
+ end
18
+ end
@@ -20,33 +20,3 @@ This will compile the java code and package it in a jar file, and then run Cucum
20
20
  that code.
21
21
 
22
22
  There is a deliberate error. See if you can fix it!
23
-
24
- h2. Background and Credits
25
-
26
- Cucumber is a rewrite of RSpec's "Story runner", which was originally written by Dan North. Dan's original
27
- implementation required that stories be written in Ruby. Shortly after, David Chelimsky added
28
- "plain text":http://blog.davidchelimsky.net/articles/2007/10/21/story-runner-in-plain-english support.
29
-
30
- This brought executable stories a little closer to non-technical users, which is one of the target audiences
31
- for this kind of tool.
32
-
33
- However, the RSpec Story runner has several shortcomings which is rather common for tools that move into new territory.
34
- Some of the biggest problems with it are:
35
-
36
- * Hard to get started with. A special "all.rb" file must be written before it can be used.
37
- * No out of the box Rake support, which puts a lot of people off.
38
- * No i18n, so if you want to write stories in a different language than English you're out of luck.
39
- * Poor error reporting. No way to know on what line a plain text story failed during execution or parsing.
40
- * Limited colouring of output.
41
- * No simple way to execute only one scenario.
42
- * No command line tool to run stories.
43
-
44
- While all of this could have been fixed in the existing codebase, I figured it would be easier to do a rewrite from scratch.
45
- I also had some ideas for extensions of the story grammar, so I decided to use "Treetop":http://treetop.rubyforge.org/
46
- and base it on a proper "grammar":http://github.com/aslakhellesoy/cucumber/tree/master/lib/cucumber/treetop_parser/feature.treetop.erb
47
-
48
- Cucumber addresses all of the shortcomings of RSpec's Story runner. If the community likes it, we'll consider phasing out
49
- the RSpec story runner.
50
-
51
- The term "Feature" has been adopted in favour of "Story" because I believe it is a more appropriate term. A feature's scenarios
52
- typically increases over time - fed by several user stories.
@@ -2,7 +2,7 @@ module Cucumber #:nodoc:
2
2
  class VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aslakhellesoy-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Aslak Helles\xC3\xB8y"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-08-06 00:00:00 -07:00
12
+ date: 2008-08-07 00:00:00 -07:00
13
13
  default_executable: cucumber
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -80,6 +80,11 @@ files:
80
80
  - bin/cucumber
81
81
  - config/hoe.rb
82
82
  - config/requirements.rb
83
+ - examples/calculator/Rakefile
84
+ - examples/calculator/features/addition.feature
85
+ - examples/calculator/features/division.feature
86
+ - examples/calculator/features/steps/addition_steps.rb
87
+ - examples/calculator/lib/calculator.rb
83
88
  - examples/java/README.textile
84
89
  - examples/java/Rakefile
85
90
  - examples/java/features/hello.feature
@@ -90,10 +95,6 @@ files:
90
95
  - examples/pure_ruby/Rakefile
91
96
  - examples/pure_ruby/features/addition.rb
92
97
  - examples/pure_ruby/features/steps/addition_steps.rb
93
- - examples/simple/Rakefile
94
- - examples/simple/features/addition.feature
95
- - examples/simple/features/division.feature
96
- - examples/simple/features/steps/addition_steps.rb
97
98
  - examples/simple_norwegian/Rakefile
98
99
  - examples/simple_norwegian/features/steps/matte_steg.rb.rb
99
100
  - examples/simple_norwegian/features/summering.feature