rspec-example_steps 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,6 +43,11 @@ module RSpec
43
43
 
44
44
  output.puts yellow(full_message)
45
45
  end
46
+
47
+ def example_step_failed(example_group, type, message, options)
48
+ full_message = "#{current_indentation} #{type.to_s.capitalize} #{message} (FAILED)"
49
+ output.puts red(full_message)
50
+ end
46
51
  end
47
52
  end
48
53
  end
@@ -11,7 +11,12 @@ module RSpec
11
11
  def Given(message, options = {})
12
12
  RSpec.world.reporter.example_step_started(self, :given, message, options)
13
13
  if block_given? && !options[:pending]
14
- yield
14
+ begin
15
+ yield
16
+ rescue Exception => e
17
+ RSpec.world.reporter.example_step_failed(self, :given, message, options)
18
+ raise e
19
+ end
15
20
  RSpec.world.reporter.example_step_passed(self, :given, message, options)
16
21
  else
17
22
  RSpec.world.reporter.example_step_pending(self, :given, message, options)
@@ -21,7 +26,12 @@ module RSpec
21
26
  def When(message, options = {})
22
27
  RSpec.world.reporter.example_step_started(self, :when, message, options)
23
28
  if block_given? && !options[:pending]
24
- yield
29
+ begin
30
+ yield
31
+ rescue Exception => e
32
+ RSpec.world.reporter.example_step_failed(self, :when, message, options)
33
+ raise e
34
+ end
25
35
  RSpec.world.reporter.example_step_passed(self, :when, message, options)
26
36
  else
27
37
  RSpec.world.reporter.example_step_pending(self, :when, message, options)
@@ -31,7 +41,12 @@ module RSpec
31
41
  def Then(message, options = {})
32
42
  RSpec.world.reporter.example_step_started(self, :then, message, options)
33
43
  if block_given? && !options[:pending]
34
- yield
44
+ begin
45
+ yield
46
+ rescue Exception => e
47
+ RSpec.world.reporter.example_step_failed(self, :then, message, options)
48
+ raise e
49
+ end
35
50
  RSpec.world.reporter.example_step_passed(self, :then, message, options)
36
51
  else
37
52
  RSpec.world.reporter.example_step_pending(self, :then, message, options)
@@ -41,7 +56,12 @@ module RSpec
41
56
  def And(message, options = {})
42
57
  RSpec.world.reporter.example_step_started(self, :and, message, options)
43
58
  if block_given? && !options[:pending]
44
- yield
59
+ begin
60
+ yield
61
+ rescue Exception => e
62
+ RSpec.world.reporter.example_step_failed(self, :and, message, options)
63
+ raise e
64
+ end
45
65
  RSpec.world.reporter.example_step_passed(self, :and, message, options)
46
66
  else
47
67
  RSpec.world.reporter.example_step_pending(self, :and, message, options)
@@ -51,12 +71,18 @@ module RSpec
51
71
  def But(message, options = {})
52
72
  RSpec.world.reporter.example_step_started(self, :but, message, options)
53
73
  if block_given? && !options[:pending]
54
- yield
74
+ begin
75
+ yield
76
+ rescue Exception => e
77
+ RSpec.world.reporter.example_step_failed(self, :but, message, options)
78
+ raise e
79
+ end
55
80
  RSpec.world.reporter.example_step_passed(self, :but, message, options)
56
81
  else
57
82
  RSpec.world.reporter.example_step_pending(self, :but, message, options)
58
83
  end
59
84
  end
85
+
60
86
  end
61
87
  end
62
88
  end
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "rspec-example_steps"
6
- s.version = "0.1.2"
6
+ s.version = "0.2.0"
7
7
  s.authors = ["Andriy Yanko"]
8
8
  s.email = ["andriy.yanko@gmail.com"]
9
9
  s.homepage = "https://github.com/railsware/rspec-example_steps"
@@ -36,23 +36,23 @@ describe "example steps" do
36
36
 
37
37
  describe "Steps without blocks" do
38
38
  Steps "they should be pending" do
39
- Given "given step without block"
40
- Then "then step without block"
41
- When "when step without block"
39
+ Given "step without block"
40
+ Then "step without block"
41
+ When "step without block"
42
42
  end
43
43
  end
44
44
 
45
45
  describe "Steps with :pending option" do
46
46
  Steps "they should be pending when :pending => true" do
47
- Given "given step with :pending option", :pending => true do
47
+ Given "step with :pending option", :pending => true do
48
48
  raise "Should not be evaluated"
49
49
  end
50
50
 
51
- When "when step with :pending option", :pending => true do
51
+ When "step with :pending option", :pending => true do
52
52
  raise "Should not be evaluated"
53
53
  end
54
54
 
55
- Then "then step with :pending option", :pending => true do
55
+ Then "step with :pending option", :pending => true do
56
56
  raise "Should not be evaluated"
57
57
  end
58
58
 
@@ -66,34 +66,68 @@ describe "example steps" do
66
66
  end
67
67
 
68
68
  Steps "they should be pending when :pending => STRING" do
69
- Given "given step with :pending option", :pending => "WIP" do
69
+ Given "step with :pending option", :pending => "WIP" do
70
70
  raise "Should not be evaluated"
71
71
  end
72
72
 
73
- When "when step with :pending option", :pending => "POSTPONED" do
73
+ When "step with :pending option", :pending => "POSTPONED" do
74
74
  raise "Should not be evaluated"
75
75
  end
76
76
 
77
- Then "then step with :pending option", :pending => "DELAYED" do
77
+ Then "step with :pending option", :pending => "DELAYED" do
78
78
  raise "Should not be evaluated"
79
79
  end
80
80
  end
81
81
 
82
82
  Steps "they should NOT be pending when :pending => false" do
83
- Given "given step with :pending option", :pending => false do
83
+ Given "step with :pending option", :pending => false do
84
84
  end
85
85
 
86
- When "when step with :pending option", :pending => false do
86
+ When "step with :pending option", :pending => false do
87
87
  end
88
88
 
89
- Then "then step with :pending option", :pending => false do
89
+ Then "step with :pending option", :pending => false do
90
90
  end
91
91
 
92
- And "and step with :pending option", :pending => false do
92
+ And "step with :pending option", :pending => false do
93
93
  end
94
94
 
95
- But "and step with :pending option", :pending => false do
95
+ But "step with :pending option", :pending => false do
96
96
  end
97
97
  end
98
98
  end
99
+
100
+
101
+
102
+ describe "Failed steps" do
103
+
104
+ Steps "Given fails" do
105
+ Given "thing" do
106
+ 1/0
107
+ end
108
+
109
+ Then "I should see error" do
110
+ end
111
+ end
112
+
113
+
114
+ Steps "When fails" do
115
+ When "action" do
116
+ (2*2).should == 5
117
+ end
118
+
119
+ Then "I should see error" do
120
+ end
121
+ end
122
+
123
+ Steps "Then fails" do
124
+ Then "result" do
125
+ raise Exception
126
+ end
127
+
128
+ Then "I should see error" do
129
+ end
130
+ end
131
+
132
+ end
99
133
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-example_steps
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
8
  - 2
10
- version: 0.1.2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andriy Yanko
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-12-30 00:00:00 +02:00
18
+ date: 2012-01-05 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency