rspec 0.6.4 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +90 -1
- data/EXAMPLES.rd +28 -6
- data/MIT-LICENSE +20 -0
- data/README +18 -12
- data/Rakefile +60 -54
- data/examples/custom_formatter.rb +4 -4
- data/examples/helper_method_example.rb +11 -0
- data/examples/mocking_example.rb +19 -2
- data/examples/partial_mock_example.rb +28 -0
- data/examples/stack_spec.rb +8 -8
- data/examples/stubbing_example.rb +50 -9
- data/examples/test_case_spec.rb +6 -6
- data/lib/spec.rb +1 -2
- data/lib/spec/callback.rb +0 -0
- data/lib/spec/expectations.rb +3 -6
- data/lib/spec/expectations/diff.rb +23 -47
- data/lib/spec/expectations/differs/default.rb +62 -0
- data/lib/spec/expectations/{exceptions.rb → errors.rb} +0 -0
- data/lib/spec/expectations/extensions.rb +4 -0
- data/lib/spec/expectations/extensions/inspect_for_expectation_not_met_error.rb +14 -0
- data/lib/spec/expectations/extensions/numeric.rb +5 -0
- data/lib/spec/expectations/{expectations.rb → extensions/object.rb} +3 -6
- data/lib/spec/expectations/extensions/symbol.rb +5 -0
- data/lib/spec/expectations/should.rb +4 -0
- data/lib/spec/expectations/should/base.rb +42 -0
- data/lib/spec/expectations/should/have.rb +79 -0
- data/lib/spec/expectations/should/not.rb +72 -0
- data/lib/spec/expectations/should/should.rb +83 -0
- data/lib/spec/expectations/sugar.rb +6 -25
- data/lib/spec/mocks.rb +5 -1
- data/lib/spec/mocks/argument_expectation.rb +15 -1
- data/lib/spec/mocks/error_generator.rb +72 -0
- data/lib/spec/mocks/{exceptions.rb → errors.rb} +0 -0
- data/lib/spec/mocks/extensions/object.rb +3 -0
- data/lib/spec/mocks/message_expectation.rb +80 -73
- data/lib/spec/mocks/mock.rb +4 -69
- data/lib/spec/mocks/mock_handler.rb +158 -0
- data/lib/spec/mocks/mock_methods.rb +44 -0
- data/lib/spec/mocks/order_group.rb +10 -2
- data/lib/spec/rake/spectask.rb +20 -18
- data/lib/spec/rake/{rcov_verify.rb → verify_rcov.rb} +2 -2
- data/lib/spec/runner.rb +3 -1
- data/lib/spec/runner/backtrace_tweaker.rb +2 -1
- data/lib/spec/runner/context.rb +10 -16
- data/lib/spec/runner/context_eval.rb +40 -40
- data/lib/spec/runner/execution_context.rb +1 -12
- data/lib/spec/runner/{kernel_ext.rb → extensions/kernel.rb} +2 -2
- data/lib/spec/runner/{instance_exec.rb → extensions/object.rb} +0 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +25 -18
- data/lib/spec/runner/formatter/html_formatter.rb +81 -101
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +9 -9
- data/lib/spec/runner/formatter/rdoc_formatter.rb +6 -6
- data/lib/spec/runner/formatter/specdoc_formatter.rb +7 -6
- data/lib/spec/runner/option_parser.rb +41 -5
- data/lib/spec/runner/reporter.rb +3 -15
- data/lib/spec/runner/spec_should_raise_handler.rb +74 -0
- data/lib/spec/runner/specification.rb +33 -14
- data/lib/spec/version.rb +6 -3
- data/vendor/watir/README.txt +1 -1
- metadata +34 -68
- data/bin/test2spec +0 -112
- data/examples/helper_method_spec.rb +0 -12
- data/lib/spec/expectations/have_helper.rb +0 -41
- data/lib/spec/expectations/helper.rb +0 -4
- data/lib/spec/expectations/should_base.rb +0 -52
- data/lib/spec/expectations/should_helper.rb +0 -93
- data/lib/spec/expectations/should_negator.rb +0 -71
- data/lib/spec/test_to_spec/ruby2ruby.rb +0 -492
- data/lib/spec/test_to_spec/sexp_transformer.rb +0 -196
- data/lib/spec/test_to_spec/test_case_ext.rb +0 -22
- data/lib/spec/test_to_spec/translation_test_runner.rb +0 -147
- data/test/spec/expectations/arbitrary_operator_test.rb +0 -55
- data/test/spec/expectations/arbitrary_predicate_test.rb +0 -163
- data/test/spec/expectations/containment_test.rb +0 -129
- data/test/spec/expectations/diff_test.rb +0 -62
- data/test/spec/expectations/identity_test.rb +0 -75
- data/test/spec/expectations/object_equality_test.rb +0 -65
- data/test/spec/expectations/raising_test.rb +0 -106
- data/test/spec/expectations/regex_matching_test.rb +0 -36
- data/test/spec/expectations/should_have_test.rb +0 -169
- data/test/spec/expectations/should_satisfy_test.rb +0 -37
- data/test/spec/expectations/sugar_test.rb +0 -93
- data/test/spec/expectations/supported_symbols_test.rb +0 -33
- data/test/spec/expectations/throwing_test.rb +0 -55
- data/test/spec/expectations/true_false_special_case_test.rb +0 -85
- data/test/spec/expectations/typing_test.rb +0 -108
- data/test/spec/mocks/mock_arg_constraints_test.rb +0 -113
- data/test/spec/mocks/mock_counts_test.rb +0 -431
- data/test/spec/mocks/mock_ordering_test.rb +0 -109
- data/test/spec/mocks/mock_test.rb +0 -220
- data/test/spec/mocks/null_object_test.rb +0 -37
- data/test/spec/runner/backtrace_tweaker_test.rb +0 -90
- data/test/spec/runner/context_matching_test.rb +0 -35
- data/test/spec/runner/context_runner_test.rb +0 -62
- data/test/spec/runner/context_test.rb +0 -191
- data/test/spec/runner/execution_context_test.rb +0 -45
- data/test/spec/runner/formatter/failure_dump_test.rb +0 -94
- data/test/spec/runner/formatter/html_formatter_test.rb +0 -48
- data/test/spec/runner/formatter/progress_bar_formatter_test.rb +0 -56
- data/test/spec/runner/formatter/rdoc_formatter_test.rb +0 -51
- data/test/spec/runner/formatter/specdoc_formatter_test.rb +0 -57
- data/test/spec/runner/kernel_ext_test.rb +0 -13
- data/test/spec/runner/option_parser_test.rb +0 -141
- data/test/spec/runner/reporter_test.rb +0 -128
- data/test/spec/runner/spec_matcher_test.rb +0 -47
- data/test/spec/runner/specification_test.rb +0 -121
- data/test/spec/test_to_spec/ruby_to_ruby_test.rb +0 -79
- data/test/spec/test_to_spec/sexp_transformer_assertion_test.rb +0 -207
- data/test/spec/test_to_spec/sexp_transformer_test.rb +0 -303
- data/test/spec/test_to_spec/test_case_ext_test.rb +0 -25
- data/test/spec/test_to_spec/testfiles/test_unit_api_spec.rb +0 -75
- data/test/spec/test_to_spec/testfiles/test_unit_api_test.rb +0 -70
- data/test/test_classes.rb +0 -102
- data/test/test_helper.rb +0 -32
@@ -1,47 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
-
module Spec
|
3
|
-
module Runner
|
4
|
-
class SpecMatcherTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def test_should_match_context_and_spec
|
7
|
-
matcher = SpecMatcher.new("a context with a spec", "a context")
|
8
|
-
assert matcher.matches?("with a spec")
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_should_match_with_regexp_reserved_characters
|
12
|
-
matcher = SpecMatcher.new("a context with #[] a spec", "a context")
|
13
|
-
assert matcher.matches?("with #[] a spec")
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_should_not_match_wrong_context
|
17
|
-
matcher = SpecMatcher.new("another context with a spec", "a context")
|
18
|
-
assert !matcher.matches?("with a spec")
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_should_not_match_wrong_spec
|
22
|
-
matcher = SpecMatcher.new("a context with another spec", "a context")
|
23
|
-
assert !matcher.matches?("with a spec")
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_should_match_context_only
|
27
|
-
matcher = SpecMatcher.new("a context", "a context")
|
28
|
-
assert matcher.matches?("with a spec")
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_should_not_match_wrong_context_only
|
32
|
-
matcher = SpecMatcher.new("another context", "a context")
|
33
|
-
assert !matcher.matches?("with a spec")
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_should_match_spec_only
|
37
|
-
matcher = SpecMatcher.new("with a spec", "a context")
|
38
|
-
assert matcher.matches?("with a spec")
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_match_wrong_spec_only
|
42
|
-
matcher = SpecMatcher.new("with another spec", "a context")
|
43
|
-
assert !matcher.matches?("with a spec")
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,121 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
-
module Spec
|
3
|
-
module Runner
|
4
|
-
class SpecificationTest < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def setup
|
7
|
-
@reporter = Spec::Mocks::Mock.new "reporter"
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_should_run_spec_in_scope_of_execution_context
|
11
|
-
spec = Specification.new("should pass") do
|
12
|
-
self.should_not_be_an_instance_of Specification
|
13
|
-
self.should_be_an_instance_of ExecutionContext
|
14
|
-
end
|
15
|
-
@reporter.should_receive(:spec_started).with "should pass"
|
16
|
-
@reporter.should_receive(:spec_finished).with "should pass", nil, nil
|
17
|
-
spec.run @reporter
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_should_add_itself_to_reporter_when_passes
|
21
|
-
spec = Specification.new("spec") {}
|
22
|
-
@reporter.should_receive(:spec_started).with "spec"
|
23
|
-
@reporter.should_receive(:spec_finished).with "spec", nil, nil
|
24
|
-
spec.run(@reporter)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_should_add_itself_to_reporter_when_fails
|
28
|
-
error = RuntimeError.new
|
29
|
-
spec = Specification.new("spec") { raise error }
|
30
|
-
@reporter.should_receive(:spec_started).with "spec"
|
31
|
-
@reporter.should_receive(:spec_finished).with "spec", error, "spec"
|
32
|
-
spec.run(@reporter)
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_should_add_itself_to_reporter_when_calling_run_dry
|
36
|
-
spec = Specification.new("spec") {}
|
37
|
-
@reporter.should_receive(:spec_started).with "spec"
|
38
|
-
@reporter.should_receive(:spec_finished).with "spec"
|
39
|
-
spec.run(@reporter, nil, nil, true)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_should_verify_mocks_after_teardown
|
43
|
-
spec = Specification.new("spec") do
|
44
|
-
mock = mock("a mock")
|
45
|
-
mock.should_receive(:poke)
|
46
|
-
end
|
47
|
-
@reporter.should_receive(:spec_started).with "spec"
|
48
|
-
@reporter.should_receive(:spec_finished) do |spec_name, error|
|
49
|
-
spec_name.should_equal "spec"
|
50
|
-
error.message.should_match(/expected 'poke' once, but received it 0 times/)
|
51
|
-
end
|
52
|
-
spec.run @reporter
|
53
|
-
end
|
54
|
-
|
55
|
-
def test_should_run_teardown_even_when_main_block_fails
|
56
|
-
spec = Specification.new("spec") do
|
57
|
-
raise "in body"
|
58
|
-
end
|
59
|
-
teardown = lambda do
|
60
|
-
raise "in teardown"
|
61
|
-
end
|
62
|
-
@reporter.should_receive(:spec_started).with "spec"
|
63
|
-
@reporter.should_receive(:spec_finished) do |spec, error, location|
|
64
|
-
spec.should_equal "spec"
|
65
|
-
location.should_equal "spec"
|
66
|
-
error.message.should_equal "in body"
|
67
|
-
end
|
68
|
-
spec.run @reporter, nil, teardown
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_should_supply_setup_as_spec_name_if_failure_in_setup
|
72
|
-
spec = Specification.new("spec") do
|
73
|
-
end
|
74
|
-
setup = lambda do
|
75
|
-
raise "in setup"
|
76
|
-
end
|
77
|
-
@reporter.should_receive(:spec_started).with "spec"
|
78
|
-
@reporter.should_receive(:spec_finished) do |name, error, location|
|
79
|
-
name.should_equal "spec"
|
80
|
-
error.message.should_equal "in setup"
|
81
|
-
location.should_equal "setup"
|
82
|
-
end
|
83
|
-
spec.run @reporter, setup
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_should_supply_teardown_as_failure_location_if_failure_in_teardown
|
87
|
-
spec = Specification.new("spec") do
|
88
|
-
end
|
89
|
-
teardown = lambda do
|
90
|
-
raise "in teardown"
|
91
|
-
end
|
92
|
-
@reporter.should_receive(:spec_started).with "spec"
|
93
|
-
@reporter.should_receive(:spec_finished) do |name, error, location|
|
94
|
-
name.should_equal "spec"
|
95
|
-
error.message.should_equal "in teardown"
|
96
|
-
location.should_equal "teardown"
|
97
|
-
end
|
98
|
-
spec.run @reporter, nil, teardown
|
99
|
-
end
|
100
|
-
|
101
|
-
def test_should_match_if_name_matches_end_of_input
|
102
|
-
spec = Specification.new("spec")
|
103
|
-
assert spec.matches_matcher?(SpecMatcher.new("context spec", "context"))
|
104
|
-
end
|
105
|
-
|
106
|
-
def test_should_match_if_name_matches_entire_input
|
107
|
-
spec = Specification.new("spec")
|
108
|
-
assert spec.matches_matcher?(SpecMatcher.new("spec", "context"))
|
109
|
-
end
|
110
|
-
|
111
|
-
def test_should_not_match_if_name_does_not_match
|
112
|
-
spec = Specification.new("otherspec")
|
113
|
-
assert !spec.matches_matcher?(SpecMatcher.new("context spec", "context"))
|
114
|
-
end
|
115
|
-
|
116
|
-
def teardown
|
117
|
-
@reporter.__verify
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
@@ -1,79 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
-
require 'spec/test_to_spec/ruby2ruby'
|
3
|
-
|
4
|
-
R2r2r = RubyToRuby.translate(RubyToRuby).sub("RubyToRuby","RubyToRubyToRuby")
|
5
|
-
eval R2r2r
|
6
|
-
|
7
|
-
class RubyToRubyToRuby
|
8
|
-
class<<self
|
9
|
-
eval RubyToRuby.translate(class<<RubyToRuby;self;end, :translate)
|
10
|
-
end
|
11
|
-
eval RubyToRuby.translate(RubyToRuby, :initialize)
|
12
|
-
end
|
13
|
-
|
14
|
-
class R2RTest < Test::Unit::TestCase
|
15
|
-
|
16
|
-
def test_self_translation
|
17
|
-
r2r2r2 = RubyToRubyToRuby.translate(RubyToRuby).sub("RubyToRuby","RubyToRubyToRuby")
|
18
|
-
r2r2r2r = RubyToRubyToRuby.translate(RubyToRubyToRuby)
|
19
|
-
# File.open('1','w'){|f| f.write r2r2r}
|
20
|
-
# File.open('2','w'){|f| f.write r2r2r2}
|
21
|
-
# File.open('3','w'){|f| f.write r2r2r2r}
|
22
|
-
assert_equal(R2r2r,r2r2r2)
|
23
|
-
assert_equal(R2r2r,r2r2r2r)
|
24
|
-
end
|
25
|
-
|
26
|
-
def hairy_method(z,x=10,y=20*z.abs,&blok)
|
27
|
-
n = 1 + 2 * 40.0 / (z - 2)
|
28
|
-
retried = false
|
29
|
-
begin
|
30
|
-
raise ArgumentError, n if retried
|
31
|
-
n -= yield x,y,z,[z,x,y].map(&blok)
|
32
|
-
n /= 1.1 until n < 500
|
33
|
-
n = "hop hop #{"%.4f" % n}"
|
34
|
-
raise n
|
35
|
-
rescue RuntimeError => e
|
36
|
-
raise if n != e.message
|
37
|
-
n = lambda{|i|
|
38
|
-
lambda{|j| "#{i} #{z+2*2} #{j.message.reverse}"
|
39
|
-
}
|
40
|
-
}[n].call(e)
|
41
|
-
unless retried
|
42
|
-
retried = true
|
43
|
-
retry
|
44
|
-
end
|
45
|
-
rescue ArgumentError => e
|
46
|
-
e.message
|
47
|
-
rescue
|
48
|
-
end
|
49
|
-
ensure
|
50
|
-
x << "ensure a-working"
|
51
|
-
end
|
52
|
-
|
53
|
-
def foobar a, █ block.call(a) end
|
54
|
-
def k; foobar [1,2,3].each { |x| x*2 } do |x| x*2 end end
|
55
|
-
|
56
|
-
def test_block_predecence_escape
|
57
|
-
eval RubyToRuby.translate(self.class, :k).sub(" k"," l")
|
58
|
-
assert_equal(k, l)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_hairy_method
|
62
|
-
eval RubyToRuby.translate(self.class, :hairy_method).sub(" h", " f")
|
63
|
-
|
64
|
-
blk = lambda{|x,y,z,arr|
|
65
|
-
unless y
|
66
|
-
x.to_i*2
|
67
|
-
else
|
68
|
-
x.to_i*y*z*arr.inject(1){|s,i| s+i}
|
69
|
-
end
|
70
|
-
}
|
71
|
-
x1 = ""
|
72
|
-
x2 = ""
|
73
|
-
res = [hairy_method(-5,x1,&blk), fairy_method(-5,x2,&blk)]
|
74
|
-
assert_equal(res.first, res.last)
|
75
|
-
assert_equal(x1, x2)
|
76
|
-
assert_equal("ensure a-working", x1)
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
@@ -1,207 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
-
require 'test/unit'
|
3
|
-
require 'rubygems'
|
4
|
-
require 'parse_tree'
|
5
|
-
require 'spec/test_to_spec/sexp_transformer'
|
6
|
-
|
7
|
-
module Spec
|
8
|
-
module TestToSpec
|
9
|
-
# This Test::Unit class verifies that the core Test::Unit assertions
|
10
|
-
# can be translated to RSpec.
|
11
|
-
# The various test_assert_* methods must follow a rigorous form -
|
12
|
-
#
|
13
|
-
# The first statement must be a Test::Unit assertion, and the second
|
14
|
-
# statement its expected RSpec translation.
|
15
|
-
#
|
16
|
-
# For each of the test_assert_* method, a test_assert_*_translation
|
17
|
-
# method is dynamically added, which will test that the translation
|
18
|
-
# of the 1st statement is effectively equal to the second one.
|
19
|
-
class SexpTransformerAssertionTest < Test::Unit::TestCase
|
20
|
-
def setup
|
21
|
-
@t = SexpTransformer.new
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_assert
|
25
|
-
assert(:foo == :foo)
|
26
|
-
(:foo == :foo).should_be true
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_assert_with_message
|
30
|
-
assert(:foo == :foo, "msg")
|
31
|
-
(:foo == :foo).should_be true
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_assert_nil
|
35
|
-
assert_nil([].index(5))
|
36
|
-
([].index(5)).should_be nil
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_assert_nil_with_message
|
40
|
-
assert_nil([].index(5), "msg")
|
41
|
-
([].index(5)).should_be nil
|
42
|
-
end
|
43
|
-
|
44
|
-
def test_assert_not_nil
|
45
|
-
assert_not_nil([5].index(5))
|
46
|
-
([5].index(5)).should_not_be nil
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_assert_not_nil_with_message
|
50
|
-
assert_not_nil(3, "msg")
|
51
|
-
3.should_not_be nil
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_assert_equal
|
55
|
-
assert_equal(2, 1+1)
|
56
|
-
(1+1).should_equal 2
|
57
|
-
end
|
58
|
-
|
59
|
-
def test_assert_equal_with_message
|
60
|
-
assert_equal(2, 1+1, "1+1 should equal 2")
|
61
|
-
(1+1).should_equal 2
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_assert_equal_with_each
|
65
|
-
[0,1,2].each_with_index do |b, c|
|
66
|
-
assert_equal c, b
|
67
|
-
end
|
68
|
-
[0,1,2].each_with_index do |b, c|
|
69
|
-
b.should_equal c
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_assert_not_equal
|
74
|
-
assert_not_equal(2+3, 1)
|
75
|
-
1.should_not_equal 2+3
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_assert_not_equal_with_message
|
79
|
-
assert_not_equal(2+3, 1, "msg")
|
80
|
-
1.should_not_equal 2+3
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_assert_same
|
84
|
-
assert_same(2, 1+1)
|
85
|
-
(1+1).should_be 2
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_assert_same_with_msg
|
89
|
-
assert_same(2, 1+1, "msg")
|
90
|
-
(1+1).should_be 2
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_assert_not_same
|
94
|
-
assert_not_same(2+3, 1)
|
95
|
-
1.should_not_be 2+3
|
96
|
-
end
|
97
|
-
|
98
|
-
def test_assert_not_same_with_message
|
99
|
-
assert_not_same(2+3, 1, "msg")
|
100
|
-
1.should_not_be 2+3
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_assert_instance_of
|
104
|
-
assert_instance_of Fixnum, 2
|
105
|
-
2.should_be_instance_of Fixnum
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_assert_kind_of
|
109
|
-
assert_kind_of Fixnum, 2
|
110
|
-
2.should_be_kind_of Fixnum
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_assert_match
|
114
|
-
assert_match(/foo/, 'foo')
|
115
|
-
'foo'.should_match(/foo/)
|
116
|
-
end
|
117
|
-
|
118
|
-
def test_assert_no_match
|
119
|
-
assert_no_match(/foo/, 'bar')
|
120
|
-
'bar'.should_not_match(/foo/)
|
121
|
-
end
|
122
|
-
|
123
|
-
def test_assert_respond_to
|
124
|
-
assert_respond_to 2, :to_f
|
125
|
-
2.should_respond_to :to_f
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_assert_respond_to_with_message
|
129
|
-
assert_respond_to 2, :to_f, "msg"
|
130
|
-
2.should_respond_to :to_f
|
131
|
-
end
|
132
|
-
|
133
|
-
def test_assert_in_delta
|
134
|
-
assert_in_delta 123.5, 123.45, 0.1
|
135
|
-
123.45.should_be_close 123.5, 0.1
|
136
|
-
end
|
137
|
-
|
138
|
-
def test_assert_in_delta_with_message
|
139
|
-
assert_in_delta 123.5, 123.45, 0.1, "123.45 should be close to 123.5"
|
140
|
-
123.45.should_be_close 123.5, 0.1
|
141
|
-
end
|
142
|
-
|
143
|
-
def test_assert_raise
|
144
|
-
assert_raise(ZeroDivisionError){ 1/0 }
|
145
|
-
lambda {1/0}.should_raise(ZeroDivisionError)
|
146
|
-
end
|
147
|
-
|
148
|
-
def test_assert_raise_with_message
|
149
|
-
assert_raise(ZeroDivisionError, "msg"){ 1/0 }
|
150
|
-
lambda {1/0}.should_raise(ZeroDivisionError)
|
151
|
-
end
|
152
|
-
|
153
|
-
def test_assert_raises
|
154
|
-
assert_raises(ZeroDivisionError){ 1/0 }
|
155
|
-
lambda {1/0}.should_raise(ZeroDivisionError)
|
156
|
-
end
|
157
|
-
|
158
|
-
def test_assert_nothing_raised
|
159
|
-
assert_nothing_raised{ 0/1 }
|
160
|
-
lambda {0/1}.should_not_raise
|
161
|
-
end
|
162
|
-
|
163
|
-
def test_assert_throws
|
164
|
-
assert_throws(:foo){ throw :foo }
|
165
|
-
lambda {throw :foo}.should_throw(:foo)
|
166
|
-
end
|
167
|
-
|
168
|
-
def test_assert_nothing_thrown
|
169
|
-
assert_nothing_thrown{ 0/1 }
|
170
|
-
lambda {0/1}.should_not_throw
|
171
|
-
end
|
172
|
-
|
173
|
-
def test_assert_block
|
174
|
-
assert_block{:foo != :bar}
|
175
|
-
lambda{:foo != :bar}.should_be true
|
176
|
-
end
|
177
|
-
|
178
|
-
# Returns the body of one of my methods as a Sexp
|
179
|
-
def self.body(sym)
|
180
|
-
t = ParseTree.new.parse_tree_for_method(self, sym)
|
181
|
-
t[2][1][2..-1]
|
182
|
-
end
|
183
|
-
|
184
|
-
# Verifies that the 1st statement in test method +m+ is properly translated
|
185
|
-
# to the 2nd statement.
|
186
|
-
def should_translate(m)
|
187
|
-
body = self.class.body(m)
|
188
|
-
assert_equal 2, body.length
|
189
|
-
test_unit_sexp = body[0]
|
190
|
-
rspec_sexp = body[1]
|
191
|
-
translation = @t.process(test_unit_sexp)
|
192
|
-
verify_sexp_equal(rspec_sexp, translation)
|
193
|
-
end
|
194
|
-
|
195
|
-
# Dynamically define extra test methods
|
196
|
-
methods = self.instance_methods(false).reject do |m|
|
197
|
-
m == "test_translations" || !(m =~ /^test_assert/)
|
198
|
-
end
|
199
|
-
methods.each do |m|
|
200
|
-
define_method "#{m}_translation" do
|
201
|
-
should_translate(m)
|
202
|
-
end
|
203
|
-
end
|
204
|
-
|
205
|
-
end
|
206
|
-
end
|
207
|
-
end
|