rspec-unit 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -11
- data/Rakefile +1 -1
- data/VERSION.yml +1 -1
- data/lib/rspec/unit/test_case.rb +13 -2
- data/spec/test_case_spec.rb +59 -14
- metadata +5 -5
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -10,16 +10,14 @@ GEM
|
|
10
10
|
rubyforge (>= 2.0.0)
|
11
11
|
json_pure (1.4.6)
|
12
12
|
rake (0.8.7)
|
13
|
-
rspec (2.
|
14
|
-
rspec-core (
|
15
|
-
rspec-expectations (
|
16
|
-
rspec-mocks (
|
17
|
-
rspec-core (2.
|
18
|
-
rspec-expectations (2.
|
19
|
-
diff-lcs (
|
20
|
-
rspec-mocks (2.
|
21
|
-
rspec-core (= 2.0.0)
|
22
|
-
rspec-expectations (= 2.0.0)
|
13
|
+
rspec (2.1.0)
|
14
|
+
rspec-core (~> 2.1.0)
|
15
|
+
rspec-expectations (~> 2.1.0)
|
16
|
+
rspec-mocks (~> 2.1.0)
|
17
|
+
rspec-core (2.1.0)
|
18
|
+
rspec-expectations (2.1.0)
|
19
|
+
diff-lcs (~> 1.1.2)
|
20
|
+
rspec-mocks (2.1.0)
|
23
21
|
rubyforge (2.0.4)
|
24
22
|
json_pure (>= 1.1.7)
|
25
23
|
|
@@ -30,4 +28,4 @@ PLATFORMS
|
|
30
28
|
DEPENDENCIES
|
31
29
|
jeweler (>= 1.4.0)
|
32
30
|
rake (>= 0.8.7)
|
33
|
-
rspec (= 2.
|
31
|
+
rspec (= 2.1.0)
|
data/Rakefile
CHANGED
@@ -10,7 +10,7 @@ begin
|
|
10
10
|
gem.homepage = "http://github.com/glv/rspec-unit"
|
11
11
|
gem.authors = ["Glenn Vanderburg"]
|
12
12
|
gem.rubyforge_project = "rspec-unit"
|
13
|
-
gem.add_dependency('rspec', '~> 2.
|
13
|
+
gem.add_dependency('rspec', '~> 2.1')
|
14
14
|
gem.has_rdoc = false
|
15
15
|
gem.files = FileList["[A-Z]*", "{bin,lib,spec}/**/*"].exclude('**/*.rbc')
|
16
16
|
gem.rubyforge_project = 'glv'
|
data/VERSION.yml
CHANGED
data/lib/rspec/unit/test_case.rb
CHANGED
@@ -63,6 +63,16 @@ module RSpec
|
|
63
63
|
@_caller_lines ||= {}
|
64
64
|
end
|
65
65
|
|
66
|
+
def self.find_caller_lines(name)
|
67
|
+
klass = self
|
68
|
+
while klass.respond_to?(:caller_lines)
|
69
|
+
lines = klass.caller_lines[name]
|
70
|
+
return lines unless lines.nil?
|
71
|
+
klass = klass.superclass
|
72
|
+
end
|
73
|
+
[]
|
74
|
+
end
|
75
|
+
|
66
76
|
def self.test_method_metadata
|
67
77
|
@_test_method_metadata ||= {}
|
68
78
|
end
|
@@ -94,7 +104,7 @@ module RSpec
|
|
94
104
|
|
95
105
|
def self.tests
|
96
106
|
@tests ||= test_methods.sort.map do |m|
|
97
|
-
meta = (test_method_metadata[m] || {}).merge({:caller =>
|
107
|
+
meta = (test_method_metadata[m] || {}).merge({:caller => find_caller_lines(m),
|
98
108
|
:full_description => "#{display_name}##{m}",
|
99
109
|
:test_unit => true})
|
100
110
|
Core::Example.new(self, m, meta, proc{execute(m)})
|
@@ -102,9 +112,10 @@ module RSpec
|
|
102
112
|
end
|
103
113
|
|
104
114
|
class <<self
|
105
|
-
private :test_case_name, :
|
115
|
+
private :test_case_name, :test_method_metadata,
|
106
116
|
:install_setup_and_teardown, :test_method?, :test_methods,
|
107
117
|
:number_of_tests, :tests
|
118
|
+
protected :caller_lines, :find_caller_lines
|
108
119
|
end
|
109
120
|
|
110
121
|
def initialize
|
data/spec/test_case_spec.rb
CHANGED
@@ -197,6 +197,31 @@ describe "RSpec::Unit::TestCase" do
|
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
200
|
+
describe "find_caller_lines" do
|
201
|
+
it "returns [] if the method name is not found" do
|
202
|
+
@foo.send(:find_caller_lines, 'wrong').should be_empty
|
203
|
+
bar = Class.new(@foo)
|
204
|
+
bar.send(:find_caller_lines, 'wrong').should be_empty
|
205
|
+
end
|
206
|
+
|
207
|
+
it "returns a stack trace array if the name is found in caller_lines" do
|
208
|
+
@foo.class_eval do
|
209
|
+
def test_bar; end
|
210
|
+
end
|
211
|
+
|
212
|
+
@foo.send(:find_caller_lines, 'test_bar').should_not be_empty
|
213
|
+
end
|
214
|
+
|
215
|
+
it "returns a stack trace array if the name is found in the parent's caller_lines" do
|
216
|
+
@foo.class_eval do
|
217
|
+
def test_bar; end
|
218
|
+
end
|
219
|
+
bar = Class.new(@foo)
|
220
|
+
|
221
|
+
bar.send(:find_caller_lines, 'test_bar').should_not be_empty
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
200
225
|
describe "test class metadata" do
|
201
226
|
before do
|
202
227
|
class SampleTestCaseForName < RSpec::Unit::TestCase
|
@@ -226,12 +251,7 @@ describe "RSpec::Unit::TestCase" do
|
|
226
251
|
it "sets :location to file_path and line_number" do
|
227
252
|
@foo.metadata[:example_group][:location].should == "#{__FILE__}:#{@foo_definition_line}"
|
228
253
|
end
|
229
|
-
|
230
|
-
it "sets :caller" do
|
231
|
-
@foo.metadata[:example_group][:caller].first.should =~ Regexp.new(Regexp.escape(@foo.metadata[:example_group][:location]))
|
232
|
-
@foo.metadata[:example_group][:caller].size.should be_>(@caller_at_foo_definition.size)
|
233
|
-
end
|
234
|
-
|
254
|
+
|
235
255
|
it "has nil for :block and :describes" do
|
236
256
|
@foo.metadata[:example_group][:block].should be_nil
|
237
257
|
@foo.metadata[:example_group][:describes].should be_nil
|
@@ -304,14 +324,6 @@ describe "RSpec::Unit::TestCase" do
|
|
304
324
|
test_baz_metadata[:example_group].should == @foo.metadata[:example_group]
|
305
325
|
end
|
306
326
|
|
307
|
-
it "sets :caller" do
|
308
|
-
@foo.class_eval do
|
309
|
-
def test_baz; end
|
310
|
-
end
|
311
|
-
test_baz_metadata[:caller].first.should match(/^#{Regexp.escape(@foo.examples.first.metadata[:location])}/)
|
312
|
-
test_baz_metadata[:caller].size.should be_>(caller.size)
|
313
|
-
end
|
314
|
-
|
315
327
|
it "records test_info metadata for next test method" do
|
316
328
|
@foo.class_eval do
|
317
329
|
test_info :foo => :bar
|
@@ -327,6 +339,39 @@ describe "RSpec::Unit::TestCase" do
|
|
327
339
|
def test_quux; end
|
328
340
|
end
|
329
341
|
find_example(@foo, 'test_quux').metadata[:foo].should be_nil
|
342
|
+
end
|
343
|
+
|
344
|
+
context "inherited methods" do
|
345
|
+
def test_baz_metadata
|
346
|
+
find_example(@bar, 'test_baz').metadata
|
347
|
+
end
|
348
|
+
|
349
|
+
it "sets :file_path to the file where the method is defined" do
|
350
|
+
@foo.class_eval do
|
351
|
+
def test_baz; end
|
352
|
+
end
|
353
|
+
@bar = Class.new(@foo)
|
354
|
+
|
355
|
+
test_baz_metadata[:file_path].should == __FILE__
|
356
|
+
end
|
357
|
+
|
358
|
+
it "sets :line_number to the line where the method definition begins" do
|
359
|
+
@foo.class_eval do
|
360
|
+
def test_baz; end
|
361
|
+
end
|
362
|
+
@bar = Class.new(@foo)
|
363
|
+
|
364
|
+
test_baz_metadata[:line_number].should == (__LINE__ - 4)
|
365
|
+
end
|
366
|
+
|
367
|
+
it "sets :location to file path and line number" do
|
368
|
+
@foo.class_eval do
|
369
|
+
def test_baz; end
|
370
|
+
end
|
371
|
+
@bar = Class.new(@foo)
|
372
|
+
|
373
|
+
test_baz_metadata[:location].should == "#{__FILE__}:#{__LINE__-4}"
|
374
|
+
end
|
330
375
|
end
|
331
376
|
end
|
332
377
|
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 1
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 1.0.0
|
9
|
+
version: 1.1.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Glenn Vanderburg
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-11-07 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,8 +26,8 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
segments:
|
28
28
|
- 2
|
29
|
-
-
|
30
|
-
version: "2.
|
29
|
+
- 1
|
30
|
+
version: "2.1"
|
31
31
|
requirement: *id001
|
32
32
|
prerelease: false
|
33
33
|
description: test/unit compatibility for RSpec 2.
|