assert 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +21 -0
- data/Gemfile.lock +4 -4
- data/README.rdoc +18 -1
- data/assert.gemspec +1 -1
- data/lib/assert/assertions.rb +4 -4
- data/lib/assert/autorun.rb +1 -1
- data/lib/assert/context.rb +50 -38
- data/lib/assert/macros/methods.rb +15 -4
- data/lib/assert/rake_tasks.rb +34 -78
- data/lib/assert/rake_tasks/irb.rb +33 -0
- data/lib/assert/rake_tasks/scope.rb +73 -0
- data/lib/assert/rake_tasks/test_task.rb +63 -0
- data/lib/assert/result.rb +84 -36
- data/lib/assert/setup/helpers.rb +7 -4
- data/lib/assert/suite.rb +45 -61
- data/lib/assert/test.rb +22 -11
- data/lib/assert/version.rb +1 -1
- data/test/assertions_test.rb +1 -1
- data/test/context/class_methods_test.rb +22 -17
- data/test/context_test.rb +64 -12
- data/test/fixtures/test_root/one_test.rb +0 -0
- data/test/fixtures/test_root/parent/area_one/area_test.rb +0 -0
- data/test/fixtures/test_root/shallow/deeply/nested_test.rb +0 -0
- data/test/fixtures/test_root/shallow/nested_test.rb +0 -0
- data/test/fixtures/test_root/shallow_test.rb +0 -0
- data/test/fixtures/test_root/two_test.rb +0 -0
- data/test/helper.rb +24 -5
- data/test/rake_tasks/irb_test.rb +45 -0
- data/test/rake_tasks/scope_test.rb +63 -0
- data/test/rake_tasks/test_task_test.rb +80 -0
- data/test/result_set_test.rb +4 -4
- data/test/result_test.rb +78 -45
- data/test/suite/context_info_test.rb +42 -0
- data/test/suite_test.rb +9 -46
- data/test/test/running_test.rb +2 -3
- data/test/test_test.rb +9 -8
- metadata +31 -7
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'assert'
|
2
|
+
|
3
|
+
require 'assert/rake_tasks/scope'
|
4
|
+
|
5
|
+
module Assert::RakeTasks
|
6
|
+
|
7
|
+
class ScopeTests < Assert::Context
|
8
|
+
desc "the scope rake tasks handler"
|
9
|
+
setup do
|
10
|
+
@scope_root = 'test/fixtures'
|
11
|
+
@handler = Assert::RakeTasks::Scope.new(File.join(@scope_root, 'test_root'))
|
12
|
+
end
|
13
|
+
subject { @handler }
|
14
|
+
|
15
|
+
should have_class_methods :test_file_suffix
|
16
|
+
should have_instance_methods :namespace, :nested_files, :path_file_list, :to_test_task
|
17
|
+
should have_instance_methods :test_tasks, :scopes
|
18
|
+
|
19
|
+
should "know its the test file suffix" do
|
20
|
+
assert_equal "_test.rb", subject.class.test_file_suffix
|
21
|
+
end
|
22
|
+
|
23
|
+
should "know its namespace" do
|
24
|
+
assert_equal :test_root, subject.namespace
|
25
|
+
assert_equal :shallow, Assert::RakeTasks::Scope.new(File.join(@scope_root, 'test_root/shallow')).namespace
|
26
|
+
end
|
27
|
+
|
28
|
+
should "know its nested files" do
|
29
|
+
assert_equal 6, subject.nested_files.size
|
30
|
+
assert_empty Assert::RakeTasks::Scope.new('does/not/exist').nested_files
|
31
|
+
|
32
|
+
h = Assert::RakeTasks::Scope.new("#{@scope_root}/test_root/shallow")
|
33
|
+
assert_equal 2, h.nested_files.size
|
34
|
+
end
|
35
|
+
|
36
|
+
should "know its path file" do
|
37
|
+
assert_empty subject.path_file_list
|
38
|
+
|
39
|
+
h = Assert::RakeTasks::Scope.new("#{@scope_root}/test_root/shallow")
|
40
|
+
assert_equal 1, h.path_file_list.size
|
41
|
+
end
|
42
|
+
|
43
|
+
should "convert to a test task" do
|
44
|
+
assert_not Assert::RakeTasks::Scope.new('does/not/exist').to_test_task
|
45
|
+
|
46
|
+
tt = subject.to_test_task
|
47
|
+
assert_kind_of TestTask, tt
|
48
|
+
assert_equal subject.nested_files.size+subject.path_file_list.size, tt.files.size
|
49
|
+
end
|
50
|
+
|
51
|
+
should "have a test task for each standalone test file" do
|
52
|
+
assert_equal 2, subject.test_tasks.size
|
53
|
+
assert_kind_of TestTask, subject.test_tasks.first
|
54
|
+
end
|
55
|
+
|
56
|
+
should "have a scope for each immediate test dir or test dir/file in the scope" do
|
57
|
+
assert_equal 2, subject.scopes.size
|
58
|
+
assert_kind_of Scope, subject.scopes.first
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
require 'assert'
|
2
|
+
|
3
|
+
require 'assert/rake_tasks/test_task'
|
4
|
+
|
5
|
+
module Assert::RakeTasks
|
6
|
+
|
7
|
+
class TestTaskTests < Assert::Context
|
8
|
+
desc "the test task"
|
9
|
+
setup do
|
10
|
+
@task = Assert::RakeTasks::TestTask.new('thing')
|
11
|
+
@some_thing = Assert::RakeTasks::TestTask.new('test/some/thing')
|
12
|
+
end
|
13
|
+
subject { @task }
|
14
|
+
|
15
|
+
should have_accessors :path, :files
|
16
|
+
should have_instance_methods :relative_path, :scope_description, :description, :name
|
17
|
+
should have_instance_methods :file_list, :ruby_args, :show_loaded_files?
|
18
|
+
|
19
|
+
should "default with empty files collection" do
|
20
|
+
assert_equal [], subject.files
|
21
|
+
end
|
22
|
+
|
23
|
+
should "know its relative path" do
|
24
|
+
assert_equal "", subject.relative_path
|
25
|
+
assert_equal "some/thing", @some_thing.relative_path
|
26
|
+
end
|
27
|
+
|
28
|
+
should "know its scope description" do
|
29
|
+
assert_equal "", subject.scope_description
|
30
|
+
assert_equal " for some/thing", @some_thing.scope_description
|
31
|
+
end
|
32
|
+
|
33
|
+
should "know its task description" do
|
34
|
+
assert_equal "Run all tests", subject.description
|
35
|
+
assert_equal "Run all tests for some/thing", @some_thing.description
|
36
|
+
end
|
37
|
+
|
38
|
+
should "know its name" do
|
39
|
+
assert_equal :thing, @task.name
|
40
|
+
assert_equal :thing, @some_thing.name
|
41
|
+
end
|
42
|
+
|
43
|
+
should "build a file list string" do
|
44
|
+
subject.files = ["test_one_test.rb", "test_two_test.rb"]
|
45
|
+
assert_equal "\"test_one_test.rb\" \"test_two_test.rb\"", subject.file_list
|
46
|
+
end
|
47
|
+
|
48
|
+
should "know its ruby args" do
|
49
|
+
subject.files = ["test_one_test.rb", "test_two_test.rb"]
|
50
|
+
assert_equal "-rrubygems \"#{subject.send(:rake_loader)}\" #{subject.file_list}", subject.ruby_args
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
class VerboseTests < TestTaskTests
|
56
|
+
setup do
|
57
|
+
@orig_env_setting = ENV["show_loaded_files"]
|
58
|
+
ENV["show_loaded_files"] = 'false'
|
59
|
+
end
|
60
|
+
teardown do
|
61
|
+
ENV["show_loaded_files"] = @orig_env_setting
|
62
|
+
end
|
63
|
+
|
64
|
+
should "not show loaded files by default" do
|
65
|
+
assert_equal false, subject.show_loaded_files?
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class EnvVerboseTests < VerboseTests
|
70
|
+
desc "if the show_loaded_files env setting is true"
|
71
|
+
setup do
|
72
|
+
ENV["show_loaded_files"] = 'true'
|
73
|
+
end
|
74
|
+
|
75
|
+
should "show loaded files" do
|
76
|
+
assert_equal true, subject.show_loaded_files?
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
data/test/result_set_test.rb
CHANGED
@@ -37,13 +37,13 @@ class Assert::ResultSet
|
|
37
37
|
@view_s = ""
|
38
38
|
@view = @result_set.view = FakeView.new(nil, StringIO.new(@view_s, "w+"))
|
39
39
|
|
40
|
-
@pass_result = Assert::Result::Pass.new("test", "pass", [])
|
40
|
+
@pass_result = Assert::Result::Pass.new(Factory.test("test"), "pass", [])
|
41
41
|
@result_set << @pass_result
|
42
|
-
@fail_result = Assert::Result::Fail.new("test", "fail", [])
|
42
|
+
@fail_result = Assert::Result::Fail.new(Factory.test("test"), "fail", [])
|
43
43
|
@result_set << @fail_result
|
44
|
-
@skip_result = Assert::Result::Skip.new("test",
|
44
|
+
@skip_result = Assert::Result::Skip.new(Factory.test("test"), Assert::Result::TestSkipped.new)
|
45
45
|
@result_set << @skip_result
|
46
|
-
@error_result = Assert::Result::Error.new("test", RuntimeError.new)
|
46
|
+
@error_result = Assert::Result::Error.new(Factory.test("test"), RuntimeError.new)
|
47
47
|
@result_set << @error_result
|
48
48
|
end
|
49
49
|
subject{ @view }
|
data/test/result_test.rb
CHANGED
@@ -31,12 +31,13 @@ module Assert::Result
|
|
31
31
|
class BaseTest < Assert::Context
|
32
32
|
desc "a base result"
|
33
33
|
setup do
|
34
|
-
@
|
34
|
+
@test = Factory.test("a test name")
|
35
|
+
@result = Assert::Result::Base.new(@test, "a message", ["line 1", "line2"])
|
35
36
|
end
|
36
37
|
subject{ @result }
|
37
38
|
|
38
|
-
should have_readers :
|
39
|
-
should have_instance_methods :to_sym, :to_s, :trace
|
39
|
+
should have_readers :test, :message, :backtrace
|
40
|
+
should have_instance_methods :test_name, :name, :to_sym, :to_s, :trace
|
40
41
|
|
41
42
|
Assert::Result.types.keys.each do |type|
|
42
43
|
should "respond to the instance method ##{type}?" do
|
@@ -48,8 +49,12 @@ module Assert::Result
|
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
52
|
+
should "know its test" do
|
53
|
+
assert_equal @test, subject.test
|
54
|
+
end
|
55
|
+
|
51
56
|
should "nil out empty messages" do
|
52
|
-
assert_equal nil, Assert::Result::Base.new(
|
57
|
+
assert_equal nil, Assert::Result::Base.new(@test, "").message
|
53
58
|
end
|
54
59
|
|
55
60
|
should "show only its class and message when inspected" do
|
@@ -83,7 +88,8 @@ module Assert::Result
|
|
83
88
|
class PassTest < Assert::Context
|
84
89
|
desc "a pass result"
|
85
90
|
setup do
|
86
|
-
@
|
91
|
+
@test = Factory.test("a test name")
|
92
|
+
@result = Assert::Result::Pass.new(@test, "passed", [])
|
87
93
|
end
|
88
94
|
subject { @result }
|
89
95
|
|
@@ -98,7 +104,11 @@ module Assert::Result
|
|
98
104
|
end
|
99
105
|
|
100
106
|
should "know its to_sym" do
|
101
|
-
assert_equal :
|
107
|
+
assert_equal :pass, subject.to_sym
|
108
|
+
end
|
109
|
+
|
110
|
+
should "know its name" do
|
111
|
+
assert_equal "Pass", subject.name
|
102
112
|
end
|
103
113
|
|
104
114
|
should "include PASS in its to_s" do
|
@@ -106,73 +116,74 @@ module Assert::Result
|
|
106
116
|
end
|
107
117
|
end
|
108
118
|
|
109
|
-
class
|
110
|
-
desc "
|
119
|
+
class IgnoreTest < Assert::Context
|
120
|
+
desc "an ignore result"
|
111
121
|
setup do
|
112
|
-
@
|
122
|
+
@test = Factory.test("a test name")
|
123
|
+
@result = Assert::Result::Ignore.new(@test, "ignored", [])
|
113
124
|
end
|
114
125
|
subject { @result }
|
115
126
|
|
116
|
-
should "be
|
117
|
-
assert_equal true, subject.
|
127
|
+
should "be ignore?" do
|
128
|
+
assert_equal true, subject.ignore?
|
118
129
|
end
|
119
130
|
|
120
|
-
Assert::Result.types.keys.reject{|k| k == :
|
131
|
+
Assert::Result.types.keys.reject{|k| k == :ignore}.each do |type|
|
121
132
|
should "not be #{type}?" do
|
122
133
|
assert_equal false, subject.send("#{type}?")
|
123
134
|
end
|
124
135
|
end
|
125
136
|
|
126
137
|
should "know its to_sym" do
|
127
|
-
assert_equal :
|
138
|
+
assert_equal :ignore, subject.to_sym
|
128
139
|
end
|
129
140
|
|
130
|
-
should "
|
131
|
-
|
141
|
+
should "know its name" do
|
142
|
+
assert_equal "Ignore", subject.name
|
143
|
+
end
|
144
|
+
|
145
|
+
should "include IGNORE in its to_s" do
|
146
|
+
assert subject.to_s.include?("IGNORE")
|
132
147
|
end
|
133
148
|
end
|
134
149
|
|
135
|
-
class
|
136
|
-
|
150
|
+
class FailureRuntimeErrorTest < Assert::Context
|
151
|
+
|
152
|
+
should "be a runtime error" do
|
153
|
+
assert_kind_of RuntimeError, Assert::Result::TestFailure.new
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
157
|
+
|
158
|
+
class FailTest < Assert::Context
|
159
|
+
desc "a fail result"
|
137
160
|
setup do
|
138
|
-
@
|
161
|
+
@test = Factory.test("a test name")
|
162
|
+
@result = Assert::Result::Fail.new(@test, "failed", [])
|
139
163
|
end
|
140
164
|
subject { @result }
|
141
165
|
|
142
|
-
should "be
|
143
|
-
assert_equal true, subject.
|
166
|
+
should "be fail?" do
|
167
|
+
assert_equal true, subject.fail?
|
144
168
|
end
|
145
169
|
|
146
|
-
Assert::Result.types.keys.reject{|k| k == :
|
170
|
+
Assert::Result.types.keys.reject{|k| k == :fail}.each do |type|
|
147
171
|
should "not be #{type}?" do
|
148
172
|
assert_equal false, subject.send("#{type}?")
|
149
173
|
end
|
150
174
|
end
|
151
175
|
|
152
176
|
should "know its to_sym" do
|
153
|
-
assert_equal :
|
154
|
-
end
|
155
|
-
|
156
|
-
should "include IGNORE in its to_s" do
|
157
|
-
assert subject.to_s.include?("IGNORE")
|
177
|
+
assert_equal :fail, subject.to_sym
|
158
178
|
end
|
159
|
-
end
|
160
179
|
|
161
|
-
|
162
|
-
|
163
|
-
begin
|
164
|
-
raise Exception, "test error"
|
165
|
-
rescue Exception => err
|
166
|
-
@exception = err
|
167
|
-
end
|
168
|
-
@result = Assert::Result::FromException.new("test", @exception)
|
180
|
+
should "know its name" do
|
181
|
+
assert_equal "Fail", subject.name
|
169
182
|
end
|
170
|
-
subject{ @result }
|
171
183
|
|
172
|
-
should "
|
173
|
-
|
184
|
+
should "include FAIL in its to_s" do
|
185
|
+
assert subject.to_s.include?("FAIL")
|
174
186
|
end
|
175
|
-
|
176
187
|
end
|
177
188
|
|
178
189
|
class SkippedRuntimeErrorTest < Assert::Context
|
@@ -183,10 +194,17 @@ module Assert::Result
|
|
183
194
|
|
184
195
|
end
|
185
196
|
|
186
|
-
class SkipTest <
|
197
|
+
class SkipTest < Assert::Context
|
187
198
|
desc "a skip result"
|
188
199
|
setup do
|
189
|
-
@
|
200
|
+
@test = Factory.test("a test name")
|
201
|
+
@exception = nil
|
202
|
+
begin
|
203
|
+
raise TestSkipped, "test ski["
|
204
|
+
rescue Exception => err
|
205
|
+
@exception = err
|
206
|
+
end
|
207
|
+
@result = Assert::Result::Skip.new(@test, @exception)
|
190
208
|
end
|
191
209
|
subject { @result }
|
192
210
|
|
@@ -201,7 +219,11 @@ module Assert::Result
|
|
201
219
|
end
|
202
220
|
|
203
221
|
should "know its to_sym" do
|
204
|
-
assert_equal :
|
222
|
+
assert_equal :skip, subject.to_sym
|
223
|
+
end
|
224
|
+
|
225
|
+
should "know its name" do
|
226
|
+
assert_equal "Skip", subject.name
|
205
227
|
end
|
206
228
|
|
207
229
|
should "include SKIP in its to_s" do
|
@@ -209,10 +231,17 @@ module Assert::Result
|
|
209
231
|
end
|
210
232
|
end
|
211
233
|
|
212
|
-
class ErrorTest <
|
234
|
+
class ErrorTest < Assert::Context
|
213
235
|
desc "an error result"
|
214
236
|
setup do
|
215
|
-
@
|
237
|
+
@test = Factory.test("a test name")
|
238
|
+
@exception = nil
|
239
|
+
begin
|
240
|
+
raise Exception, "test error"
|
241
|
+
rescue Exception => err
|
242
|
+
@exception = err
|
243
|
+
end
|
244
|
+
@result = Assert::Result::Error.new(@test, @exception)
|
216
245
|
end
|
217
246
|
subject { @result }
|
218
247
|
|
@@ -227,7 +256,11 @@ module Assert::Result
|
|
227
256
|
end
|
228
257
|
|
229
258
|
should "know its to_sym" do
|
230
|
-
assert_equal :
|
259
|
+
assert_equal :error, subject.to_sym
|
260
|
+
end
|
261
|
+
|
262
|
+
should "know its name" do
|
263
|
+
assert_equal "Error", subject.name
|
231
264
|
end
|
232
265
|
|
233
266
|
should "include ERRORED in its to_s" do
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'assert'
|
2
|
+
|
3
|
+
class Assert::Suite::ContextInfo
|
4
|
+
|
5
|
+
class BasicTests < Assert::Context
|
6
|
+
desc "a suite's context info"
|
7
|
+
setup do
|
8
|
+
@caller = caller
|
9
|
+
@klass = Assert::Context
|
10
|
+
@info = Assert::Suite::ContextInfo.new(@klass, @caller.first)
|
11
|
+
end
|
12
|
+
subject { @info }
|
13
|
+
|
14
|
+
should have_readers :klass, :called_from, :file
|
15
|
+
|
16
|
+
should "set its klass on init" do
|
17
|
+
assert_equal @klass, subject.klass
|
18
|
+
end
|
19
|
+
|
20
|
+
should "set its called_from to the first caller on init" do
|
21
|
+
assert_equal @caller.first, subject.called_from
|
22
|
+
end
|
23
|
+
|
24
|
+
should "set its file from caller info on init" do
|
25
|
+
assert_equal @caller.first.gsub(/\:[0-9]+.*$/, ''), subject.file
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
class KlassOnlyTests < BasicTests
|
31
|
+
desc "w/ only klass information"
|
32
|
+
setup do
|
33
|
+
@info = Assert::Suite::ContextInfo.new(@klass)
|
34
|
+
end
|
35
|
+
|
36
|
+
should "not have any file info" do
|
37
|
+
assert_nil subject.file
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
data/test/suite_test.rb
CHANGED
@@ -16,25 +16,14 @@ class Assert::Suite
|
|
16
16
|
end
|
17
17
|
subject { @suite }
|
18
18
|
|
19
|
-
should
|
20
|
-
should have_instance_methods :contexts, :tests, :ordered_tests, :ordered_results
|
19
|
+
should have_instance_methods :ordered_tests, :results, :ordered_results
|
21
20
|
should have_instance_methods :count, :test_count, :result_count
|
22
21
|
should have_instance_methods :setup, :startup, :teardown, :shutdown
|
23
22
|
|
23
|
+
should have_accessors :tests, :test_methods
|
24
24
|
should have_accessors :start_time, :end_time
|
25
25
|
should have_instance_method :run_time, :runner_seed
|
26
26
|
|
27
|
-
should "be a hash" do
|
28
|
-
assert_kind_of ::Hash, subject
|
29
|
-
end
|
30
|
-
|
31
|
-
should "push contexts on itself" do
|
32
|
-
context_class = Factory.context_class
|
33
|
-
subject << context_class
|
34
|
-
assert_equal true, subject.has_key?(context_class)
|
35
|
-
assert_equal [], subject[context_class]
|
36
|
-
end
|
37
|
-
|
38
27
|
should "determine a klass' local public test methods" do
|
39
28
|
assert_equal(
|
40
29
|
["test_subclass_stuff", "test_mixin_stuff", "test_repeated"].sort,
|
@@ -53,26 +42,26 @@ class Assert::Suite
|
|
53
42
|
setup do
|
54
43
|
@suite = Assert::Suite.new
|
55
44
|
context_class = Factory.context_class
|
56
|
-
@suite
|
57
|
-
Factory.test("should do nothing", context_class),
|
58
|
-
Factory.test("should pass", context_class) do
|
45
|
+
@suite.tests = [
|
46
|
+
Factory.test("should do nothing", Factory.context_info(context_class)),
|
47
|
+
Factory.test("should pass", Factory.context_info(context_class)) do
|
59
48
|
assert(1==1)
|
60
49
|
refute(1==0)
|
61
50
|
end,
|
62
|
-
Factory.test("should fail", context_class) do
|
51
|
+
Factory.test("should fail", Factory.context_info(context_class)) do
|
63
52
|
ignore
|
64
53
|
assert(1==0)
|
65
54
|
refute(1==1)
|
66
55
|
end,
|
67
|
-
Factory.test("should be ignored", context_class) do
|
56
|
+
Factory.test("should be ignored", Factory.context_info(context_class)) do
|
68
57
|
ignore
|
69
58
|
end,
|
70
|
-
Factory.test("should skip", context_class) do
|
59
|
+
Factory.test("should skip", Factory.context_info(context_class)) do
|
71
60
|
skip
|
72
61
|
ignore
|
73
62
|
assert(1==1)
|
74
63
|
end,
|
75
|
-
Factory.test("should error", context_class) do
|
64
|
+
Factory.test("should error", Factory.context_info(context_class)) do
|
76
65
|
raise Exception
|
77
66
|
ignore
|
78
67
|
assert(1==1)
|
@@ -167,32 +156,6 @@ class Assert::Suite
|
|
167
156
|
end
|
168
157
|
|
169
158
|
|
170
|
-
class PrepTest < Assert::Context
|
171
|
-
desc "a suite with a context with local public test meths"
|
172
|
-
setup do
|
173
|
-
@suite = Assert::Suite.new
|
174
|
-
@suite << TwoTests
|
175
|
-
end
|
176
|
-
subject{ @suite }
|
177
|
-
|
178
|
-
should "create tests from any local public test methods with a prep call" do
|
179
|
-
subject.send(:prep)
|
180
|
-
assert_equal 2, subject.test_count(TwoTests)
|
181
|
-
end
|
182
|
-
|
183
|
-
should "not double count local public test methods with multiple prep calls" do
|
184
|
-
subject.send(:prep)
|
185
|
-
subject.send(:prep)
|
186
|
-
assert_equal 2, subject.test_count(TwoTests)
|
187
|
-
end
|
188
|
-
|
189
|
-
should "create tests from any local public test methods with a test_count call" do
|
190
|
-
assert_equal 2, subject.test_count(TwoTests)
|
191
|
-
end
|
192
|
-
|
193
|
-
end
|
194
|
-
|
195
|
-
|
196
159
|
|
197
160
|
class SetupTest < Assert::Context
|
198
161
|
desc "a suite with a setup"
|