cucumber_analytics 1.5.1 → 1.5.2

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.
Files changed (74) hide show
  1. data/History.rdoc +6 -0
  2. data/Rakefile +10 -27
  3. data/cucumber_analytics.gemspec +1 -0
  4. data/features/modeling/background_modeling.feature +0 -11
  5. data/features/modeling/directory_modeling.feature +0 -11
  6. data/features/modeling/doc_string_modeling.feature +0 -11
  7. data/features/modeling/example_modeling.feature +0 -11
  8. data/features/modeling/feature_file_modeling.feature +0 -11
  9. data/features/modeling/feature_modeling.feature +0 -11
  10. data/features/modeling/outline_modeling.feature +0 -11
  11. data/features/modeling/row_modeling.feature +0 -10
  12. data/features/modeling/scenario_modeling.feature +0 -11
  13. data/features/modeling/step_modeling.feature +0 -11
  14. data/features/modeling/table_modeling.feature +0 -11
  15. data/features/modeling/table_row_modeling.feature +0 -11
  16. data/features/modeling/tag_modeling.feature +0 -11
  17. data/features/step_definitions/background_steps.rb +4 -4
  18. data/features/step_definitions/directory_steps.rb +1 -1
  19. data/features/step_definitions/doc_string_steps.rb +6 -6
  20. data/features/step_definitions/feature_file_steps.rb +1 -1
  21. data/features/step_definitions/feature_steps.rb +11 -11
  22. data/features/step_definitions/outline_steps.rb +18 -18
  23. data/features/step_definitions/step_steps.rb +6 -6
  24. data/features/step_definitions/table_steps.rb +6 -6
  25. data/features/step_definitions/tag_steps.rb +10 -10
  26. data/features/step_definitions/test_steps.rb +8 -8
  27. data/features/step_definitions/verification_steps.rb +2 -2
  28. data/features/step_definitions/world_steps.rb +8 -8
  29. data/lib/cucumber_analytics/step.rb +3 -1
  30. data/lib/cucumber_analytics/test_element.rb +2 -0
  31. data/lib/cucumber_analytics/version.rb +1 -1
  32. data/spec/integration/background_integration_spec.rb +5 -5
  33. data/spec/integration/directory_integration_spec.rb +4 -4
  34. data/spec/integration/doc_string_integration_spec.rb +6 -6
  35. data/spec/integration/example_integration_spec.rb +8 -8
  36. data/spec/integration/feature_file_integration_spec.rb +3 -3
  37. data/spec/integration/feature_integration_spec.rb +15 -15
  38. data/spec/integration/outline_integration_spec.rb +7 -7
  39. data/spec/integration/scenario_integration_spec.rb +6 -6
  40. data/spec/integration/step_integration_spec.rb +16 -17
  41. data/spec/integration/table_integration_spec.rb +8 -8
  42. data/spec/integration/table_row_integration_spec.rb +7 -7
  43. data/spec/integration/tag_integration_spec.rb +6 -6
  44. data/spec/integration/world_integration_spec.rb +2 -2
  45. data/spec/unit/background_unit_spec.rb +2 -2
  46. data/spec/unit/containing_element_unit_specs.rb +2 -2
  47. data/spec/unit/directory_unit_spec.rb +14 -14
  48. data/spec/unit/doc_string_unit_spec.rb +18 -18
  49. data/spec/unit/example_unit_spec.rb +32 -32
  50. data/spec/unit/feature_element_unit_specs.rb +12 -12
  51. data/spec/unit/feature_file_unit_spec.rb +12 -12
  52. data/spec/unit/feature_unit_spec.rb +16 -16
  53. data/spec/unit/nested_element_unit_specs.rb +6 -6
  54. data/spec/unit/nested_unit_spec.rb +5 -5
  55. data/spec/unit/outline_unit_spec.rb +7 -7
  56. data/spec/unit/parsing_unit_spec.rb +4 -4
  57. data/spec/unit/prepopulated_unit_specs.rb +1 -1
  58. data/spec/unit/raw_element_unit_specs.rb +4 -4
  59. data/spec/unit/raw_unit_spec.rb +3 -3
  60. data/spec/unit/row_unit_spec.rb +6 -6
  61. data/spec/unit/scenario_unit_spec.rb +3 -3
  62. data/spec/unit/sourceable_unit_spec.rb +1 -1
  63. data/spec/unit/sourced_element_unit_specs.rb +2 -2
  64. data/spec/unit/step_unit_spec.rb +53 -44
  65. data/spec/unit/table_row_unit_spec.rb +6 -6
  66. data/spec/unit/table_unit_spec.rb +14 -14
  67. data/spec/unit/tag_unit_spec.rb +5 -5
  68. data/spec/unit/taggable_unit_spec.rb +14 -14
  69. data/spec/unit/tagged_element_unit_specs.rb +14 -14
  70. data/spec/unit/test_element_unit_spec.rb +11 -3
  71. data/spec/unit/test_element_unit_specs.rb +5 -5
  72. data/spec/unit/world_unit_spec.rb +26 -26
  73. metadata +26 -5
  74. data/features/step_definitions/spec_steps.rb +0 -18
@@ -1,3 +1,9 @@
1
+ === Version 1.5.2 / 2016-01-21
2
+
3
+ * Bug fix: Fixed an error caused by comparing elements with step objects to
4
+ anything that did not have step objects.
5
+
6
+
1
7
  === Version 1.5.1 / 2014-05-26
2
8
 
3
9
  * Version ranges have been removed for the gherkin gem. Since this gem can work
data/Rakefile CHANGED
@@ -1,39 +1,22 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
- require 'cucumber/rake/task'
4
- require 'rspec/core/rake_task'
3
+ require 'racatt'
5
4
 
5
+ namespace 'cucumber_analytics' do
6
6
 
7
- def set_cucumber_options(options)
8
- ENV['CUCUMBER_OPTS'] = options
9
- end
10
-
11
- def combine_options(set_1, set_2)
12
- set_2 ? "#{set_1} #{set_2}" : set_1
13
- end
7
+ task :clear_coverage do
8
+ code_coverage_directory = "#{File.dirname(__FILE__)}/coverage"
14
9
 
10
+ FileUtils.remove_dir(code_coverage_directory, true)
11
+ end
15
12
 
16
- task :clear_coverage do
17
- code_coverage_directory = "#{File.dirname(__FILE__)}/coverage"
18
13
 
19
- FileUtils.remove_dir(code_coverage_directory, true)
20
- end
14
+ Racatt.create_tasks
21
15
 
22
- desc 'Run all acceptance tests for the gem'
23
- task :tests, [:options] do |t, args|
24
- set_cucumber_options(combine_options("-t ~@wip -t ~@off -f progress", args[:options]))
25
- end
26
- Cucumber::Rake::Task.new(:tests)
16
+ # Redefining the task from 'racatt' in order to clear the code coverage results
17
+ task :test_everything, [:command_options] => :clear_coverage
27
18
 
28
- desc 'Run all API specifications for the gem'
29
- RSpec::Core::RakeTask.new(:specs) do |t|
30
- t.rspec_opts = "-t ~wip -t ~off"
31
19
  end
32
20
 
33
- desc 'Run All The Things'
34
- task :everything => :clear_coverage do
35
- Rake::Task[:specs].invoke
36
- Rake::Task[:tests].invoke('-t ~@redundant')
37
- end
38
21
 
39
- task :default => :everything
22
+ task :default => 'cucumber_analytics:test_everything'
@@ -25,4 +25,5 @@ Gem::Specification.new do |gem|
25
25
  gem.add_development_dependency('cucumber')
26
26
  gem.add_development_dependency('rspec')
27
27
  gem.add_development_dependency('simplecov')
28
+ gem.add_development_dependency('racatt', '>= 0.0.3', '< 1.0.0' )
28
29
  end
@@ -62,14 +62,3 @@ Feature: Background elements can be modeled.
62
62
 
63
63
  Scenario: Convenient output of a background
64
64
  Then the background has convenient output
65
-
66
- @redundant
67
- Scenario Outline: Background models pass all other specifications
68
- Exact specifications detailing the API for background models.
69
- Given that there are "<additional specifications>" detailing models
70
- When the corresponding specifications are run
71
- Then all of those specifications are met
72
- Examples:
73
- | additional specifications |
74
- | background_unit_spec.rb |
75
- | background_integration_spec.rb |
@@ -107,14 +107,3 @@ Feature: Directories can be modeled.
107
107
 
108
108
  Scenario: Convenient output of a directory
109
109
  Then the directory has convenient output
110
-
111
- @redundant
112
- Scenario Outline: Directory models pass all other specifications
113
- Exact specifications detailing the API for directory models.
114
- Given that there are "<additional specifications>" detailing models
115
- When the corresponding specifications are run
116
- Then all of those specifications are met
117
- Examples:
118
- | additional specifications |
119
- | directory_unit_spec.rb |
120
- | directory_integration_spec.rb |
@@ -50,14 +50,3 @@ Feature: Doc string elements can be modeled.
50
50
 
51
51
  Scenario: Convenient output of an a doc string
52
52
  Then the doc string has convenient output
53
-
54
- @redundant
55
- Scenario Outline: Doc string models pass all other specifications
56
- Exact specifications detailing the API for doc string models.
57
- Given that there are "<additional specifications>" detailing models
58
- When the corresponding specifications are run
59
- Then all of those specifications are met
60
- Examples:
61
- | additional specifications |
62
- | doc_string_unit_spec.rb |
63
- | doc_string_integration_spec.rb |
@@ -98,14 +98,3 @@ Feature: Example elements can be modeled.
98
98
 
99
99
  Scenario: Convenient output of an example block
100
100
  Then the example block has convenient output
101
-
102
- @redundant
103
- Scenario Outline: Example models pass all other specifications
104
- Exact specifications detailing the API for example block models.
105
- Given that there are "<additional specifications>" detailing models
106
- When the corresponding specifications are run
107
- Then all of those specifications are met
108
- Examples:
109
- | additional specifications |
110
- | example_unit_spec.rb |
111
- | example_integration_spec.rb |
@@ -51,14 +51,3 @@ Feature: Feature files can be modeled.
51
51
 
52
52
  Scenario: Convenient output of a feature file
53
53
  Then the feature file has convenient output
54
-
55
- @redundant
56
- Scenario Outline: Feature file models pass all other specifications
57
- Exact specifications detailing the API for .feature file models.
58
- Given that there are "<additional specifications>" detailing models
59
- When the corresponding specifications are run
60
- Then all of those specifications are met
61
- Examples:
62
- | additional specifications |
63
- | feature_file_unit_spec.rb |
64
- | feature_file_integration_spec.rb |
@@ -151,14 +151,3 @@ Feature: Features can be modeled.
151
151
 
152
152
  Scenario: Convenient output of a feature
153
153
  Then the feature has convenient output
154
-
155
- @redundant
156
- Scenario Outline: Feature models pass all other specifications
157
- Exact specifications detailing the API for feature models.
158
- Given that there are "<additional specifications>" detailing models
159
- When the corresponding specifications are run
160
- Then all of those specifications are met
161
- Examples:
162
- | additional specifications |
163
- | feature_unit_spec.rb |
164
- | feature_integration_spec.rb |
@@ -87,14 +87,3 @@ Feature: Outline elements can be modeled.
87
87
 
88
88
  Scenario: Convenient output of an an outline
89
89
  Then the outline has convenient output
90
-
91
- @redundant
92
- Scenario Outline: Outline models pass all other specifications
93
- Exact specifications detailing the API for outline models.
94
- Given that there are "<additional specifications>" detailing models
95
- When the corresponding specifications are run
96
- Then all of those specifications are met
97
- Examples:
98
- | additional specifications |
99
- | outline_unit_spec.rb |
100
- | outline_integration_spec.rb |
@@ -65,13 +65,3 @@ Feature: Row elements can be modeled.
65
65
 
66
66
  Scenario: Convenient output of a row
67
67
  Then the row has convenient output
68
-
69
- @redundant
70
- Scenario Outline: Row models pass all other specifications
71
- Exact specifications detailing the API for Row models.
72
- Given that there are "<additional specifications>" detailing models
73
- When the corresponding specifications are run
74
- Then all of those specifications are met
75
- Examples:
76
- | additional specifications |
77
- | row_unit_spec.rb |
@@ -76,14 +76,3 @@ Feature: Scenario elements can be modeled.
76
76
 
77
77
  Scenario: Convenient output of a scenario
78
78
  Then the scenario has convenient output
79
-
80
- @redundant
81
- Scenario Outline: Scenario models pass all other specifications
82
- Exact specifications detailing the API for scenario models.
83
- Given that there are "<additional specifications>" detailing models
84
- When the corresponding specifications are run
85
- Then all of those specifications are met
86
- Examples:
87
- | additional specifications |
88
- | scenario_unit_spec.rb |
89
- | scenario_integration_spec.rb |
@@ -72,14 +72,3 @@ Feature: Step elements can be modeled.
72
72
 
73
73
  Scenario: Convenient output of a step
74
74
  Then the step has convenient output
75
-
76
- @redundant
77
- Scenario Outline: Step models pass all other specifications
78
- Exact specifications detailing the API for step models.
79
- Given that there are "<additional specifications>" detailing models
80
- When the corresponding specifications are run
81
- Then all of those specifications are met
82
- Examples:
83
- | additional specifications |
84
- | step_unit_spec.rb |
85
- | step_integration_spec.rb |
@@ -39,14 +39,3 @@ Feature: Table elements can be modeled.
39
39
 
40
40
  Scenario: Convenient output of a table
41
41
  Then the table has convenient output
42
-
43
- @redundant
44
- Scenario Outline: Table models pass all other specifications
45
- Exact specifications detailing the API for table models.
46
- Given that there are "<additional specifications>" detailing models
47
- When the corresponding specifications are run
48
- Then all of those specifications are met
49
- Examples:
50
- | additional specifications |
51
- | table_unit_spec.rb |
52
- | table_integration_spec.rb |
@@ -54,14 +54,3 @@ Feature: Table Row elements can be modeled.
54
54
 
55
55
  Scenario: Convenient output of a table row
56
56
  Then the table row has convenient output
57
-
58
- @redundant
59
- Scenario Outline: Table row models pass all other specifications
60
- Exact specifications detailing the API for table table row models.
61
- Given that there are "<additional specifications>" detailing models
62
- When the corresponding specifications are run
63
- Then all of those specifications are met
64
- Examples:
65
- | additional specifications |
66
- | table_row_unit_spec.rb |
67
- | table_row_integration_spec.rb |
@@ -45,14 +45,3 @@ Feature: Tag elements can be modeled.
45
45
 
46
46
  Scenario: Convenient output of a tag
47
47
  Then the tag has convenient output
48
-
49
- @redundant
50
- Scenario Outline: Tag models pass all other specifications
51
- Exact specifications detailing the API for tag models.
52
- Given that there are "<additional specifications>" detailing models
53
- When the corresponding specifications are run
54
- Then all of those specifications are met
55
- Examples:
56
- | additional specifications |
57
- | tag_unit_spec.rb |
58
- | tag_integration_spec.rb |
@@ -6,7 +6,7 @@ Then /^the(?: feature "([^"]*)")? background is found to have the following prop
6
6
  expected = expected_value
7
7
  actual = @parsed_files[file - 1].feature.background.send(property.to_sym).to_s
8
8
 
9
- actual.should == expected
9
+ expect(actual).to eq(expected)
10
10
  end
11
11
  end
12
12
 
@@ -18,8 +18,8 @@ Then /^the(?: feature "([^"]*)")? background has the following description:/ do
18
18
  new_description = @parsed_files[file - 1].feature.background.description_text
19
19
  old_description = @parsed_files[file - 1].feature.background.description
20
20
 
21
- new_description.should == expected
22
- old_description.should == remove_whitespace(expected)
21
+ expect(new_description).to eq(expected)
22
+ expect(old_description).to eq(remove_whitespace(expected))
23
23
  end
24
24
 
25
25
  Then /^the(?: feature "([^"]*)")? background's steps are as follows:$/ do |file, steps|
@@ -76,6 +76,6 @@ Given(/^a background element based on the following gherkin:$/) do |background_t
76
76
  end
77
77
 
78
78
  Then /^the background has convenient output$/ do
79
- @parsed_files.first.feature.background.method(:to_s).owner.should == CucumberAnalytics::Background
79
+ expect(@parsed_files.first.feature.background.method(:to_s).owner).to eq(CucumberAnalytics::Background)
80
80
  end
81
81
 
@@ -48,5 +48,5 @@ Given(/^a directory element based on "([^"]*)"$/) do |directory_name|
48
48
  end
49
49
 
50
50
  Then(/^the directory has convenient output$/) do
51
- @parsed_directories.first.method(:to_s).owner.should == CucumberAnalytics::Directory
51
+ expect(@parsed_directories.first.method(:to_s).owner).to eq(CucumberAnalytics::Directory)
52
52
  end
@@ -25,9 +25,9 @@ Then /^(?:the )?(?:feature "([^"]*)" )?(?:test(?: "([^"]*)")? )?(?:step(?: "([^"
25
25
  test ||= 1
26
26
  step ||= 1
27
27
 
28
- @parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents_text.should == contents
28
+ expect(@parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents_text).to eq(contents)
29
29
  # Remove once Array contents is no longer supported
30
- @parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents.should == contents.split("\n", -1)
30
+ expect(@parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents).to eq(contents.split("\n", -1))
31
31
  end
32
32
 
33
33
  Then /^(?:the )?(?:feature "([^"]*)" )?(?:test(?: "([^"]*)")? )?(?:step(?: "([^"]*)") )?doc string contents are empty$/ do |file, test, step|
@@ -36,8 +36,8 @@ Then /^(?:the )?(?:feature "([^"]*)" )?(?:test(?: "([^"]*)")? )?(?:step(?: "([^"
36
36
  step ||= 1
37
37
 
38
38
  #todo Remove once Array contents is no longer supported
39
- @parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents.should be_empty
40
- @parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents_text.should be_empty
39
+ expect(@parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents).to be_empty
40
+ expect(@parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.contents_text).to be_empty
41
41
  end
42
42
 
43
43
  Then(/^(?:the )?(?:feature "([^"]*)" )?(?:test(?: "([^"]*)")? )?(?:step(?: "([^"]*)") )?doc string correctly stores its underlying implementation$/) do |file, test, step|
@@ -47,11 +47,11 @@ Then(/^(?:the )?(?:feature "([^"]*)" )?(?:test(?: "([^"]*)")? )?(?:step(?: "([^"
47
47
 
48
48
  raw_element = @parsed_files[file - 1].feature.tests[test - 1].steps[step - 1].block.raw_element
49
49
 
50
- raw_element.has_key?('content_type').should be_true
50
+ expect(raw_element).to have_key('content_type')
51
51
  end
52
52
 
53
53
  Then(/^the doc string has convenient output$/) do
54
- @parsed_files.first.feature.tests.first.steps.first.block.method(:to_s).owner.should == CucumberAnalytics::DocString
54
+ expect(@parsed_files.first.feature.tests.first.steps.first.block.method(:to_s).owner).to eq(CucumberAnalytics::DocString)
55
55
  end
56
56
 
57
57
  Given(/^a doc string element based on the following gherkin:$/) do |doc_string_text|
@@ -30,7 +30,7 @@ When /^(?:the )?file(?: "([^"]*)")? has no features$/ do |file|
30
30
  end
31
31
 
32
32
  Then(/^the feature file has convenient output$/) do
33
- @parsed_files.first.method(:to_s).owner.should == CucumberAnalytics::FeatureFile
33
+ expect(@parsed_files.first.method(:to_s).owner).to eq(CucumberAnalytics::FeatureFile)
34
34
  end
35
35
 
36
36
  Given(/^a feature file element based on "([^"]*)"$/) do |file_name|
@@ -14,20 +14,20 @@ Then /^(?:the )?feature "([^"]*)" has the following description:$/ do |file, tex
14
14
  new_description = @parsed_files[file - 1].feature.description_text
15
15
  old_description = @parsed_files[file - 1].feature.description
16
16
 
17
- new_description.should == text
18
- old_description.should == remove_whitespace(text)
17
+ expect(new_description).to eq(text)
18
+ expect(old_description).to eq(remove_whitespace(text))
19
19
  end
20
20
 
21
21
  Then /^feature "([^"]*)" is found to have the following tags:$/ do |file, expected_tags|
22
22
  expected_tags = expected_tags.raw.flatten
23
23
 
24
- @parsed_files[file - 1].feature.tags.should == expected_tags
25
- @parsed_files[file - 1].feature.tag_elements.collect { |tag| tag.name }.should == expected_tags
24
+ expect(@parsed_files[file - 1].feature.tags).to eq(expected_tags)
25
+ expect(@parsed_files[file - 1].feature.tag_elements.collect { |tag| tag.name }).to eq(expected_tags)
26
26
  end
27
27
 
28
28
  Then /^feature "([^"]*)" has no description$/ do |file|
29
- @parsed_files[file - 1].feature.description_text.should == ''
30
- @parsed_files[file - 1].feature.description.should == []
29
+ expect(@parsed_files[file - 1].feature.description_text).to eq('')
30
+ expect(@parsed_files[file - 1].feature.description).to eq([])
31
31
  end
32
32
 
33
33
  Then /^feature "([^"]*)" has no tags$/ do |file|
@@ -57,7 +57,7 @@ end
57
57
  When /^(?:the )?feature(?: "([^"]*)")? background is as follows:$/ do |file, background|
58
58
  file ||= 1
59
59
 
60
- @parsed_files[file - 1].feature.background.name.should == background.raw.flatten.first
60
+ expect(@parsed_files[file - 1].feature.background.name).to eq(background.raw.flatten.first)
61
61
  end
62
62
 
63
63
  When /^feature "([^"]*)" has no scenarios$/ do |file|
@@ -77,11 +77,11 @@ Then /^(?:the )?feature(?: "([^"]*)")? correctly stores its underlying implement
77
77
 
78
78
  raw_element = @parsed_files[file - 1].feature.raw_element
79
79
 
80
- raw_element.has_key?('elements').should be_true
80
+ expect(raw_element).to have_key('elements')
81
81
  end
82
82
 
83
83
  Then(/^the feature has convenient output$/) do
84
- @parsed_files.first.feature.method(:to_s).owner.should == CucumberAnalytics::Feature
84
+ expect(@parsed_files.first.feature.method(:to_s).owner).to eq(CucumberAnalytics::Feature)
85
85
  end
86
86
 
87
87
  Given(/^a feature element based on the following gherkin:$/) do |feature_text|
@@ -91,6 +91,6 @@ end
91
91
  def remove_whitespace(text)
92
92
  stripped_text = text.split("\n").collect { |line| line.strip }
93
93
  stripped_text.delete('')
94
-
94
+
95
95
  stripped_text
96
- end
96
+ end
@@ -16,7 +16,7 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
16
16
  properties = properties.rows_hash
17
17
 
18
18
  properties.each do |property, value|
19
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].send(property.to_sym).to_s.should == value
19
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].send(property.to_sym).to_s).to eq(value)
20
20
  end
21
21
  end
22
22
 
@@ -44,8 +44,8 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
44
44
  new_description = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].description_text
45
45
  old_description = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].description
46
46
 
47
- new_description.should == text
48
- old_description.should == remove_whitespace(text)
47
+ expect(new_description).to eq(text)
48
+ expect(old_description).to eq(remove_whitespace(text))
49
49
  end
50
50
 
51
51
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? has no description$/ do |file, test, example|
@@ -56,8 +56,8 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
56
56
  new_description = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].description_text
57
57
  old_description = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].description
58
58
 
59
- new_description.should == ''
60
- old_description.should == []
59
+ expect(new_description).to eq('')
60
+ expect(old_description).to eq([])
61
61
  end
62
62
 
63
63
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? is found to have the following tags:$/ do |file, test, example, expected_tags|
@@ -67,8 +67,8 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
67
67
 
68
68
  expected_tags = expected_tags.raw.flatten
69
69
 
70
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tags.should == expected_tags
71
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tag_elements.collect { |tag| tag.name }.should == expected_tags
70
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tags).to eq(expected_tags)
71
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tag_elements.collect { |tag| tag.name }).to eq(expected_tags)
72
72
  end
73
73
 
74
74
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? is found to have the following applied tags:$/ do |file, test, example, expected_tags|
@@ -78,8 +78,8 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
78
78
 
79
79
  expected_tags = expected_tags.raw.flatten.sort
80
80
 
81
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].applied_tags.sort.should == expected_tags
82
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].applied_tag_elements.collect { |tag| tag.name }.sort.should == expected_tags
81
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].applied_tags.sort).to eq(expected_tags)
82
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].applied_tag_elements.collect { |tag| tag.name }.sort).to eq(expected_tags)
83
83
  end
84
84
 
85
85
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? has no tags$/ do |file, test, example|
@@ -87,8 +87,8 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
87
87
  test ||= 1
88
88
  example ||= 1
89
89
 
90
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tags.should == []
91
- @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tag_elements.collect { |tag| tag.name }.should == []
90
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tags).to eq([])
91
+ expect(@parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].tag_elements.collect { |tag| tag.name }).to eq([])
92
92
  end
93
93
 
94
94
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? rows are as follows:$/ do |file, test, example, rows|
@@ -181,9 +181,9 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
181
181
 
182
182
  example = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1]
183
183
 
184
- example.row_elements[1..example.row_elements.count].should be_empty
184
+ expect(example.row_elements[1..example.row_elements.count]).to be_empty
185
185
  #todo - remove once Hash rows are no longer supported
186
- example.rows.should be_empty
186
+ expect(example.rows).to be_empty
187
187
  end
188
188
 
189
189
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? row(?: "([^"]*)")? correctly stores its underlying implementation$/ do |file, test, example, row|
@@ -194,7 +194,7 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
194
194
 
195
195
  raw_element = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].row_elements[row - 1].raw_element
196
196
 
197
- raw_element.has_key?('cells').should be_true
197
+ expect(raw_element).to have_key('cells')
198
198
  end
199
199
 
200
200
  Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^"]*)")? correctly stores its underlying implementation$/ do |file, test, example|
@@ -204,11 +204,11 @@ Then /^(?:the )?(?:feature "([^"]*)" )?test(?: "([^"]*)")? example block(?: "([^
204
204
 
205
205
  raw_element = @parsed_files[file - 1].feature.tests[test - 1].examples[example - 1].raw_element
206
206
 
207
- raw_element.has_key?('rows').should be_true
207
+ expect(raw_element).to have_key('rows')
208
208
  end
209
209
 
210
210
  Then(/^the row has convenient output$/) do
211
- @parsed_files.first.feature.tests.first.examples.first.row_elements.first.method(:to_s).owner.should == CucumberAnalytics::Row
211
+ expect(@parsed_files.first.feature.tests.first.examples.first.row_elements.first.method(:to_s).owner).to eq(CucumberAnalytics::Row)
212
212
  end
213
213
 
214
214
  Given(/^a row element based on the following gherkin:$/) do |row_text|
@@ -224,7 +224,7 @@ When(/^the row element has no cells$/) do
224
224
  end
225
225
 
226
226
  Then(/^the example block has convenient output$/) do
227
- @parsed_files.first.feature.tests.first.examples.first.method(:to_s).owner.should == CucumberAnalytics::Example
227
+ expect(@parsed_files.first.feature.tests.first.examples.first.method(:to_s).owner).to eq(CucumberAnalytics::Example)
228
228
  end
229
229
 
230
230
  Given(/^an example element based on the following gherkin:$/) do |example_text|
@@ -244,7 +244,7 @@ When(/^the example element has no parameters or rows$/) do
244
244
  end
245
245
 
246
246
  Then(/^the outline has convenient output$/) do
247
- @parsed_files.first.feature.tests.first.method(:to_s).owner.should == CucumberAnalytics::Outline
247
+ expect(@parsed_files.first.feature.tests.first.method(:to_s).owner).to eq(CucumberAnalytics::Outline)
248
248
  end
249
249
 
250
250
  Given(/^an outline element based on the following gherkin:$/) do |outline_text|