riot 0.11.4 → 0.12.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/CHANGELOG +6 -0
  2. data/VERSION +1 -1
  3. data/lib/riot/assertion.rb +10 -5
  4. data/lib/riot/assertion_macro.rb +10 -0
  5. data/lib/riot/assertion_macros/any.rb +16 -2
  6. data/lib/riot/assertion_macros/assigns.rb +42 -16
  7. data/lib/riot/assertion_macros/empty.rb +13 -2
  8. data/lib/riot/assertion_macros/equals.rb +17 -2
  9. data/lib/riot/assertion_macros/equivalent_to.rb +15 -1
  10. data/lib/riot/assertion_macros/exists.rb +13 -1
  11. data/lib/riot/assertion_macros/includes.rb +16 -0
  12. data/lib/riot/assertion_macros/kind_of.rb +13 -0
  13. data/lib/riot/assertion_macros/matches.rb +14 -0
  14. data/lib/riot/assertion_macros/nil.rb +10 -0
  15. data/lib/riot/assertion_macros/not_borat.rb +10 -0
  16. data/lib/riot/assertion_macros/raises.rb +28 -0
  17. data/lib/riot/assertion_macros/respond_to.rb +14 -0
  18. data/lib/riot/assertion_macros/same_elements.rb +13 -2
  19. data/lib/riot/assertion_macros/size.rb +12 -0
  20. data/lib/riot/context.rb +4 -126
  21. data/lib/riot/context_helpers.rb +132 -0
  22. data/lib/riot/context_options.rb +24 -0
  23. data/riot.gemspec +46 -27
  24. data/test.watchr +70 -0
  25. data/test/core/assertion_macros/any_test.rb +36 -4
  26. data/test/core/assertion_macros/assigns_test.rb +28 -0
  27. data/test/core/assertion_macros/empty_test.rb +35 -7
  28. data/test/core/assertion_macros/equals_test.rb +29 -0
  29. data/test/core/assertion_macros/equivalent_to_test.rb +36 -17
  30. data/test/core/assertion_macros/exists_test.rb +25 -4
  31. data/test/core/assertion_macros/includes_test.rb +12 -0
  32. data/test/core/assertion_macros/kind_of_test.rb +15 -0
  33. data/test/core/assertion_macros/matches_test.rb +49 -0
  34. data/test/core/assertion_macros/nil_test.rb +10 -8
  35. data/test/core/assertion_macros/not_borat_test.rb +14 -8
  36. data/test/core/assertion_macros/raises_test.rb +39 -6
  37. data/test/core/assertion_macros/respond_to_test.rb +18 -1
  38. data/test/core/assertion_macros/same_elements_test.rb +17 -0
  39. data/test/core/assertion_macros/size_test.rb +45 -5
  40. data/test/core/context/asserts_topic_test.rb +21 -0
  41. data/test/core/context/context_test.rb +35 -0
  42. data/test/core/{context_with_options_test.rb → context/context_with_options_test.rb} +0 -0
  43. data/test/core/context/deny_test.rb +25 -0
  44. data/test/core/context/helper_test.rb +11 -0
  45. data/test/core/context/hookup_test.rb +13 -0
  46. data/test/core/context/nested_contexts_test.rb +40 -0
  47. data/test/core/context/premium_setup_test.rb +19 -0
  48. data/test/core/context/should_test.rb +17 -0
  49. data/test/core/{using_describe_in_a_test.rb → context/using_describe_in_a_test.rb} +9 -0
  50. data/test/core/{chained_context_middleware_test.rb → middleware/chained_context_middleware_test.rb} +0 -0
  51. data/test/core/{context_middleware_test.rb → middleware/context_middleware_test.rb} +0 -0
  52. data/test/core/{assertion_macro_test.rb → runnable/assertion_macro_test.rb} +0 -0
  53. data/test/core/{assertion_test.rb → runnable/assertion_test.rb} +0 -0
  54. data/test/core/{message_test.rb → runnable/message_test.rb} +0 -0
  55. data/test/core/runnable/negative_assertion_test.rb +36 -0
  56. data/test/core/{setup_test.rb → runnable/setup_test.rb} +0 -0
  57. data/test/core/{situation_test.rb → runnable/situation_test.rb} +0 -0
  58. data/test/core/{teardown_test.rb → runnable/teardown_test.rb} +0 -0
  59. metadata +54 -32
  60. data/test/core/assertion_macros/matching_test.rb +0 -24
  61. data/test/core/context_test.rb +0 -157
@@ -1,7 +1,12 @@
1
1
  module Riot
2
2
  # Asserts that the result of the test is an object that responds to the given method
3
+ #
3
4
  # asserts("test") { "foo" }.respond_to(:to_s)
4
5
  # should("test") { "foo" }.respond_to(:to_s)
6
+ #
7
+ # If you want to test that the result does not respond to something:
8
+ #
9
+ # denies("test") { "foo" }.responds_to(:harassment)
5
10
  class RespondToMacro < AssertionMacro
6
11
  register :respond_to
7
12
  register :responds_to
@@ -13,5 +18,14 @@ module Riot
13
18
  fail(expected_message.method(expected).is_not_defined)
14
19
  end
15
20
  end
21
+
22
+ def devaluate(actual, expected)
23
+ if actual.respond_to?(expected)
24
+ fail(expected_message.method(expected).is_defined)
25
+ else
26
+ pass new_message.does_not_respond_to(expected)
27
+ end
28
+ end
29
+
16
30
  end
17
31
  end
@@ -1,14 +1,25 @@
1
1
  module Riot
2
2
  # Asserts that two arrays contain the same elements, the same number of times.
3
+ #
3
4
  # asserts("test") { ["foo", "bar"] }.same_elements(["bar", "foo"])
4
5
  # should("test") { ["foo", "bar"] }.same_elements(["bar", "foo"])
6
+ #
7
+ # Maybe you just want to make sure two sets arent't the same:
8
+ #
9
+ # denies("test") { ["foo", "bar"] }.same_elements(["baz", "boo"])
5
10
  class SameElementsMacro < AssertionMacro
6
11
  register :same_elements
7
-
12
+ require 'set'
13
+
8
14
  def evaluate(actual, expected)
9
- require 'set'
10
15
  same = (Set.new(expected) == Set.new(actual))
11
16
  same ? pass : fail(expected_message.elements(expected).to_match(actual))
12
17
  end
18
+
19
+ def devaluate(actual, expected)
20
+ same = (Set.new(expected) == Set.new(actual))
21
+ same ? fail(expected_message.elements(expected).not_to_match(actual)) : pass
22
+ end
23
+
13
24
  end
14
25
  end
@@ -1,9 +1,16 @@
1
1
  module Riot
2
2
  # Asserts that result's size is as expected. Expected size can be specified as
3
3
  # a number or a range.
4
+ #
4
5
  # asserts("a string") { 'washington' }.size(9..12)
5
6
  # asserts("an array") { [1, 2, 3] }.size(3)
6
7
  # asserts("a hash") { {:name => 'washington'} }.size(1)
8
+ #
9
+ # To ensure that the result is not of a specific size:
10
+ #
11
+ # denies("a string") { 'washington' }.size(4)
12
+ # denies("an array") { [1, 2, 3] }.size(6..10)
13
+ # denies("a hash") { {:name => 'washington'} }.size(2)
7
14
  class SizeMacro < AssertionMacro
8
15
  register :size
9
16
 
@@ -11,5 +18,10 @@ module Riot
11
18
  failure_message = expected_message.size_of(actual).to_be(expected).not(actual.size)
12
19
  expected === actual.size ? pass(new_message.is_of_size(expected)) : fail(failure_message)
13
20
  end
21
+
22
+ def devaluate(actual, expected)
23
+ failure_message = expected_message.size_of(actual).to_not_be(expected).not(actual.size)
24
+ expected === actual.size ? fail(failure_message) : pass(new_message.is_not_size(expected))
25
+ end
14
26
  end
15
27
  end
@@ -1,3 +1,6 @@
1
+ require 'riot/context_options'
2
+ require 'riot/context_helpers'
3
+
1
4
  module Riot
2
5
  RootContext = Struct.new(:setups, :teardowns, :detailed_description, :options)
3
6
 
@@ -6,33 +9,13 @@ module Riot
6
9
  def situation_class; Situation; end
7
10
  end # ContextClassOverrides
8
11
 
9
- module ContextOptions
10
- # Set options for the specific context. These options will generally be used for context middleware.
11
- # Riot::Context does not currently look at any options.
12
- #
13
- # context "Foo" do
14
- # set :transactional, true
15
- # end
16
- def set(key, value) options[key] = value; end
17
-
18
- # Returns the value of a set option. The key must match exactly, symbols and strings are not
19
- # interchangeable.
20
- #
21
- # @return [Object]
22
- def option(key) options[key]; end
23
-
24
- # Returns the has of defined options.
25
- #
26
- # @return [Hash]
27
- def options; @options ||= {}; end
28
- end # ContextOptions
29
-
30
12
  # You make your assertions within a Context. The context stores setup and teardown blocks, and allows for
31
13
  # nesting and refactoring into helpers. Extension developers may also configure ContextMiddleware objects
32
14
  # in order to extend the functionality of a Context.
33
15
  class Context
34
16
  include ContextClassOverrides
35
17
  include ContextOptions
18
+ include ContextHelpers
36
19
 
37
20
  # The set of middleware helpers configured for the current test space.
38
21
  #
@@ -78,100 +61,6 @@ module Riot
78
61
  def teardowns
79
62
  @parent.teardowns + @teardowns
80
63
  end
81
-
82
- # Add a setup block.
83
- #
84
- # A setup block defines the topic of the context. There can be multiple setup
85
- # blocks; each can access the previous topic through the +topic+ attribute.
86
- #
87
- # context "A string" do
88
- # setup { "foo" }
89
- # setup { topic * 2 }
90
- # asserts(:length).equals(6)
91
- # end
92
- #
93
- # If you provide +true+ as the first argument, the setup will be unshifted onto the list of setups,
94
- # ensuring it will be run before any other setups. This is really only useful for context middlewares.
95
- def setup(premium=false, &definition)
96
- setup = Setup.new(&definition)
97
- premium ? @setups.unshift(setup) : @setups.push(setup)
98
- setup
99
- end
100
-
101
- # Helpers are essentially methods accessible within a situation.
102
- #
103
- # They're not setup methods, but can be called from setups or from assetions. Each time called, the
104
- # helper will be evaluated. It's not currently memoized.
105
- #
106
- # context "A string" do
107
- # helper(:foo) { "bar" }
108
- # asserts("a foo") { foo }.equals("bar")
109
- # end
110
- def helper(name, &block)
111
- (@setups << Helper.new(name, &block)).last
112
- end
113
-
114
- # A setup shortcut that returns the original topic so you don't have to. Good for nested setups. Instead
115
- # of doing this in your context:
116
- #
117
- # setup do
118
- # topic.do_something
119
- # topic
120
- # end
121
- #
122
- # You would do this:
123
- #
124
- # hookup { topic.do_something } # Yay!
125
- def hookup(&definition)
126
- setup { self.instance_eval(&definition); topic }
127
- end
128
-
129
- # Add a teardown block. You may define multiple of these as well.
130
- #
131
- # teardown { Bombs.drop! }
132
- def teardown(&definition)
133
- (@teardowns << Setup.new(&definition)).last
134
- end
135
-
136
- # Makes an assertion.
137
- #
138
- # In the most basic form, an assertion requires a descriptive name and a block.
139
- #
140
- # asserts("#size is equals to 2") { topic.size == 2 }
141
- #
142
- # However, several shortcuts are available. Assertion macros can be added to the
143
- # end, automating a number of common assertion patterns, e.g.
144
- #
145
- # asserts("#size") { topic.size }.equals(2)
146
- #
147
- # Furthermore, the pattern of testing an attribute on the topic is codified as
148
- #
149
- # asserts(:size).equals(2)
150
- #
151
- # Passing a Symbol to +asserts+ enables this behaviour. For more information on
152
- # assertion macros, see {Riot::AssertionMacro}.
153
- #
154
- # @param [String, Symbol] the property being tested
155
- def asserts(what, &definition)
156
- new_assertion("asserts", what, &definition)
157
- end
158
-
159
- # Same as #asserts, except it uses the phrase "should" in the report output. Sometimes you feel like a
160
- # nut, sometimes you don't.
161
- #
162
- # should("ensure expected") { "bar" }.equals("bar")
163
- #
164
- # @param [String, Symbol] the property being tested
165
- def should(what, &definition)
166
- new_assertion("should", what, &definition)
167
- end
168
-
169
- # Makes an assertion on the topic itself, e.g.
170
- #
171
- # asserts_topic.matches(/^ab+/)
172
- def asserts_topic(what="that it")
173
- asserts(what) { topic }
174
- end
175
64
 
176
65
  def run(reporter)
177
66
  reporter.describe_context(self) unless @assertions.empty?
@@ -208,16 +97,5 @@ module Riot
208
97
  (@contexts << klass.new(description, self, &definition)).last
209
98
  end
210
99
 
211
- def new_assertion(scope, what, &definition)
212
- if what.kind_of?(Symbol)
213
- definition ||= proc { topic.send(what) }
214
- description = "#{scope} ##{what}"
215
- else
216
- description = "#{scope} #{what}"
217
- end
218
-
219
- (@assertions << assertion_class.new(description, &definition)).last
220
- end
221
100
  end # Context
222
-
223
101
  end # Riot
@@ -0,0 +1,132 @@
1
+ module Riot
2
+ module ContextHelpers
3
+
4
+ # Add a setup block.
5
+ #
6
+ # A setup block defines the topic of the context. There can be multiple setup
7
+ # blocks; each can access the previous topic through the +topic+ attribute.
8
+ #
9
+ # context "A string" do
10
+ # setup { "foo" }
11
+ # setup { topic * 2 }
12
+ # asserts(:length).equals(6)
13
+ # end
14
+ #
15
+ # If you provide +true+ as the first argument, the setup will be unshifted onto the list of setups,
16
+ # ensuring it will be run before any other setups. This is really only useful for context middlewares.
17
+ def setup(premium=false, &definition)
18
+ setup = Setup.new(&definition)
19
+ premium ? @setups.unshift(setup) : @setups.push(setup)
20
+ setup
21
+ end
22
+
23
+ # Helpers are essentially methods accessible within a situation.
24
+ #
25
+ # They're not setup methods, but can be called from setups or from assetions. Each time called, the
26
+ # helper will be evaluated. It's not currently memoized.
27
+ #
28
+ # context "A string" do
29
+ # helper(:foo) { "bar" }
30
+ # asserts("a foo") { foo }.equals("bar")
31
+ # end
32
+ def helper(name, &block)
33
+ (@setups << Helper.new(name, &block)).last
34
+ end
35
+
36
+ # A setup shortcut that returns the original topic so you don't have to. Good for nested setups. Instead
37
+ # of doing this in your context:
38
+ #
39
+ # setup do
40
+ # topic.do_something
41
+ # topic
42
+ # end
43
+ #
44
+ # You would do this:
45
+ #
46
+ # hookup { topic.do_something } # Yay!
47
+ def hookup(&definition)
48
+ setup { self.instance_eval(&definition); topic }
49
+ end
50
+
51
+ # Add a teardown block. You may define multiple of these as well.
52
+ #
53
+ # teardown { Bombs.drop! }
54
+ def teardown(&definition)
55
+ (@teardowns << Setup.new(&definition)).last
56
+ end
57
+
58
+ # Makes an assertion.
59
+ #
60
+ # In the most basic form, an assertion requires a descriptive name and a block.
61
+ #
62
+ # asserts("#size is equals to 2") { topic.size == 2 }
63
+ #
64
+ # However, several shortcuts are available. Assertion macros can be added to the
65
+ # end, automating a number of common assertion patterns, e.g.
66
+ #
67
+ # asserts("#size") { topic.size }.equals(2)
68
+ #
69
+ # Furthermore, the pattern of testing an attribute on the topic is codified as
70
+ #
71
+ # asserts(:size).equals(2)
72
+ #
73
+ # Passing a Symbol to +asserts+ enables this behaviour. For more information on
74
+ # assertion macros, see {Riot::AssertionMacro}.
75
+ #
76
+ # @param [String, Symbol] the property being tested
77
+ def asserts(what, &definition)
78
+ new_assertion("asserts", what, &definition)
79
+ end
80
+
81
+ # Same as #asserts, except it uses the phrase "should" in the report output. Sometimes you feel like a
82
+ # nut, sometimes you don't.
83
+ #
84
+ # should("ensure expected") { "bar" }.equals("bar")
85
+ #
86
+ # @param [String, Symbol] the property being tested
87
+ def should(what, &definition)
88
+ new_assertion("should", what, &definition)
89
+ end
90
+
91
+ # Like an assertion, but expects negative results.
92
+ #
93
+ # In the most basic form, a denial requires a descriptive name and a block.
94
+ #
95
+ # denies("#size is equals to 2") { topic.size != 2 }
96
+ #
97
+ # Several shortcuts are available here as well. Assertion macros can be added to the
98
+ # end, automating a number of common assertion patterns, e.g.
99
+ #
100
+ # denies("#size") { topic.size }.equals(2)
101
+ #
102
+ # Furthermore, the pattern of testing an attribute on the topic is codified as
103
+ #
104
+ # denies(:size).equals(2)
105
+ #
106
+ # Passing a Symbol to +denies+ enables this behaviour. For more information on
107
+ # assertion macros, see {Riot::AssertionMacro}.
108
+ #
109
+ # @param [String, Symbol] the property being tested
110
+ def denies(what, &definition)
111
+ new_assertion("denies", what, true, &definition)
112
+ end
113
+
114
+ # Makes an assertion on the topic itself, e.g.
115
+ #
116
+ # asserts_topic.matches(/^ab+/)
117
+ def asserts_topic(what="that it")
118
+ asserts(what) { topic }
119
+ end
120
+ private
121
+ def new_assertion(scope, what, negative=false, &definition)
122
+ if what.kind_of?(Symbol)
123
+ definition ||= proc { topic.send(what) }
124
+ description = "#{scope} ##{what}"
125
+ else
126
+ description = "#{scope} #{what}"
127
+ end
128
+
129
+ (@assertions << assertion_class.new(description, negative, &definition)).last
130
+ end
131
+ end # AssertionHelpers
132
+ end # Riot
@@ -0,0 +1,24 @@
1
+ module Riot
2
+ module ContextOptions
3
+
4
+ # Set options for the specific context. These options will generally be used for context middleware.
5
+ # Riot::Context does not currently look at any options.
6
+ #
7
+ # context "Foo" do
8
+ # set :transactional, true
9
+ # end
10
+ def set(key, value) options[key] = value; end
11
+
12
+ # Returns the value of a set option. The key must match exactly, symbols and strings are not
13
+ # interchangeable.
14
+ #
15
+ # @return [Object]
16
+ def option(key) options[key]; end
17
+
18
+ # Returns the has of defined options.
19
+ #
20
+ # @return [Hash]
21
+ def options; @options ||= {}; end
22
+
23
+ end # ContextOptions
24
+ end # Riot
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{riot}
8
- s.version = "0.11.4"
8
+ s.version = "0.12.0.pre"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Justin 'Gus' Knowlden"]
12
- s.date = %q{2010-09-06}
12
+ s.date = %q{2010-10-14}
13
13
  s.description = %q{An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks. Protest the slow test.}
14
14
  s.email = %q{gus@gusg.us}
15
15
  s.extra_rdoc_files = [
@@ -42,6 +42,8 @@ Gem::Specification.new do |s|
42
42
  "lib/riot/assertion_macros/same_elements.rb",
43
43
  "lib/riot/assertion_macros/size.rb",
44
44
  "lib/riot/context.rb",
45
+ "lib/riot/context_helpers.rb",
46
+ "lib/riot/context_options.rb",
45
47
  "lib/riot/message.rb",
46
48
  "lib/riot/middleware.rb",
47
49
  "lib/riot/reporter.rb",
@@ -49,12 +51,12 @@ Gem::Specification.new do |s|
49
51
  "lib/riot/runnable.rb",
50
52
  "lib/riot/situation.rb",
51
53
  "riot.gemspec",
54
+ "test.watchr",
52
55
  "test/benchmark/colorize.rb",
53
56
  "test/benchmark/message_concatenation.rb",
54
57
  "test/benchmark/riot_vs_minitest.rb",
55
58
  "test/benchmark/same_elements_vs_set.rb",
56
59
  "test/benchmark/simple_context_and_assertions.rb",
57
- "test/core/assertion_macro_test.rb",
58
60
  "test/core/assertion_macros/any_test.rb",
59
61
  "test/core/assertion_macros/assigns_test.rb",
60
62
  "test/core/assertion_macros/empty_test.rb",
@@ -63,24 +65,33 @@ Gem::Specification.new do |s|
63
65
  "test/core/assertion_macros/exists_test.rb",
64
66
  "test/core/assertion_macros/includes_test.rb",
65
67
  "test/core/assertion_macros/kind_of_test.rb",
66
- "test/core/assertion_macros/matching_test.rb",
68
+ "test/core/assertion_macros/matches_test.rb",
67
69
  "test/core/assertion_macros/nil_test.rb",
68
70
  "test/core/assertion_macros/not_borat_test.rb",
69
71
  "test/core/assertion_macros/raises_test.rb",
70
72
  "test/core/assertion_macros/respond_to_test.rb",
71
73
  "test/core/assertion_macros/same_elements_test.rb",
72
74
  "test/core/assertion_macros/size_test.rb",
73
- "test/core/assertion_test.rb",
74
- "test/core/chained_context_middleware_test.rb",
75
- "test/core/context_middleware_test.rb",
76
- "test/core/context_test.rb",
77
- "test/core/context_with_options_test.rb",
78
- "test/core/message_test.rb",
75
+ "test/core/context/asserts_topic_test.rb",
76
+ "test/core/context/context_test.rb",
77
+ "test/core/context/context_with_options_test.rb",
78
+ "test/core/context/deny_test.rb",
79
+ "test/core/context/helper_test.rb",
80
+ "test/core/context/hookup_test.rb",
81
+ "test/core/context/nested_contexts_test.rb",
82
+ "test/core/context/premium_setup_test.rb",
83
+ "test/core/context/should_test.rb",
84
+ "test/core/context/using_describe_in_a_test.rb",
85
+ "test/core/middleware/chained_context_middleware_test.rb",
86
+ "test/core/middleware/context_middleware_test.rb",
79
87
  "test/core/report_test.rb",
80
- "test/core/setup_test.rb",
81
- "test/core/situation_test.rb",
82
- "test/core/teardown_test.rb",
83
- "test/core/using_describe_in_a_test.rb",
88
+ "test/core/runnable/assertion_macro_test.rb",
89
+ "test/core/runnable/assertion_test.rb",
90
+ "test/core/runnable/message_test.rb",
91
+ "test/core/runnable/negative_assertion_test.rb",
92
+ "test/core/runnable/setup_test.rb",
93
+ "test/core/runnable/situation_test.rb",
94
+ "test/core/runnable/teardown_test.rb",
84
95
  "test/extensions/rrriot_test.rb",
85
96
  "test/teststrap.rb"
86
97
  ]
@@ -95,7 +106,6 @@ Gem::Specification.new do |s|
95
106
  "test/benchmark/riot_vs_minitest.rb",
96
107
  "test/benchmark/same_elements_vs_set.rb",
97
108
  "test/benchmark/simple_context_and_assertions.rb",
98
- "test/core/assertion_macro_test.rb",
99
109
  "test/core/assertion_macros/any_test.rb",
100
110
  "test/core/assertion_macros/assigns_test.rb",
101
111
  "test/core/assertion_macros/empty_test.rb",
@@ -104,24 +114,33 @@ Gem::Specification.new do |s|
104
114
  "test/core/assertion_macros/exists_test.rb",
105
115
  "test/core/assertion_macros/includes_test.rb",
106
116
  "test/core/assertion_macros/kind_of_test.rb",
107
- "test/core/assertion_macros/matching_test.rb",
117
+ "test/core/assertion_macros/matches_test.rb",
108
118
  "test/core/assertion_macros/nil_test.rb",
109
119
  "test/core/assertion_macros/not_borat_test.rb",
110
120
  "test/core/assertion_macros/raises_test.rb",
111
121
  "test/core/assertion_macros/respond_to_test.rb",
112
122
  "test/core/assertion_macros/same_elements_test.rb",
113
123
  "test/core/assertion_macros/size_test.rb",
114
- "test/core/assertion_test.rb",
115
- "test/core/chained_context_middleware_test.rb",
116
- "test/core/context_middleware_test.rb",
117
- "test/core/context_test.rb",
118
- "test/core/context_with_options_test.rb",
119
- "test/core/message_test.rb",
124
+ "test/core/context/asserts_topic_test.rb",
125
+ "test/core/context/context_test.rb",
126
+ "test/core/context/context_with_options_test.rb",
127
+ "test/core/context/deny_test.rb",
128
+ "test/core/context/helper_test.rb",
129
+ "test/core/context/hookup_test.rb",
130
+ "test/core/context/nested_contexts_test.rb",
131
+ "test/core/context/premium_setup_test.rb",
132
+ "test/core/context/should_test.rb",
133
+ "test/core/context/using_describe_in_a_test.rb",
134
+ "test/core/middleware/chained_context_middleware_test.rb",
135
+ "test/core/middleware/context_middleware_test.rb",
120
136
  "test/core/report_test.rb",
121
- "test/core/setup_test.rb",
122
- "test/core/situation_test.rb",
123
- "test/core/teardown_test.rb",
124
- "test/core/using_describe_in_a_test.rb",
137
+ "test/core/runnable/assertion_macro_test.rb",
138
+ "test/core/runnable/assertion_test.rb",
139
+ "test/core/runnable/message_test.rb",
140
+ "test/core/runnable/negative_assertion_test.rb",
141
+ "test/core/runnable/setup_test.rb",
142
+ "test/core/runnable/situation_test.rb",
143
+ "test/core/runnable/teardown_test.rb",
125
144
  "test/extensions/rrriot_test.rb",
126
145
  "test/teststrap.rb"
127
146
  ]