riot 0.11.4 → 0.12.0.pre

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 (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
  ]