rspec 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/CHANGES +7 -12
  2. data/Rakefile +17 -12
  3. data/TUTORIAL +1 -1
  4. data/WHY_RSPEC +115 -0
  5. data/bin/spec +17 -4
  6. data/bin/test2rspec +35 -0
  7. data/examples/airport_spec.rb +35 -0
  8. data/examples/mocking_spec.rb +16 -0
  9. data/examples/spec_framework_spec.rb +28 -0
  10. data/examples/stack.rb +36 -0
  11. data/examples/stack_spec.rb +112 -0
  12. data/lib/spec.rb +5 -18
  13. data/lib/spec/api.rb +4 -0
  14. data/lib/spec/{exceptions.rb → api/exceptions.rb} +1 -1
  15. data/lib/spec/{expectations.rb → api/expectations.rb} +5 -4
  16. data/lib/spec/api/helper.rb +10 -0
  17. data/lib/spec/{have_helper.rb → api/helper/have_helper.rb} +1 -1
  18. data/lib/spec/{instance_helper.rb → api/helper/instance_helper.rb} +0 -0
  19. data/lib/spec/{instance_negator.rb → api/helper/instance_negator.rb} +0 -0
  20. data/lib/spec/{kind_helper.rb → api/helper/kind_helper.rb} +0 -0
  21. data/lib/spec/{kind_negator.rb → api/helper/kind_negator.rb} +0 -0
  22. data/lib/spec/{respond_helper.rb → api/helper/respond_helper.rb} +0 -0
  23. data/lib/spec/{respond_negator.rb → api/helper/respond_negator.rb} +0 -0
  24. data/lib/spec/{should_base.rb → api/helper/should_base.rb} +6 -4
  25. data/lib/spec/{should_helper.rb → api/helper/should_helper.rb} +12 -0
  26. data/lib/spec/{should_negator.rb → api/helper/should_negator.rb} +11 -0
  27. data/lib/spec/api/mock.rb +184 -0
  28. data/lib/spec/rake/spectask.rb +153 -0
  29. data/lib/spec/runner.rb +9 -0
  30. data/lib/spec/runner/backtrace_tweaker.rb +17 -0
  31. data/lib/spec/runner/context.rb +47 -0
  32. data/lib/spec/runner/context_runner.rb +52 -0
  33. data/lib/spec/runner/execution_context.rb +15 -0
  34. data/lib/spec/runner/instance_exec.rb +15 -0
  35. data/lib/spec/runner/kernel_ext.rb +6 -0
  36. data/lib/spec/runner/option_parser.rb +41 -0
  37. data/lib/spec/runner/rdoc_formatter.rb +17 -0
  38. data/lib/spec/runner/simple_text_reporter.rb +92 -0
  39. data/lib/spec/runner/specification.rb +42 -0
  40. data/lib/spec/tool/command_line.rb +39 -0
  41. data/lib/spec/tool/test_unit_translator.rb +112 -0
  42. data/lib/spec/version.rb +13 -0
  43. data/test/spec/api/helper/arbitrary_predicate_test.rb +121 -0
  44. data/test/spec/api/helper/containment_test.rb +117 -0
  45. data/test/spec/api/helper/equality_test.rb +46 -0
  46. data/test/spec/api/helper/identity_test.rb +68 -0
  47. data/test/spec/api/helper/raising_test.rb +50 -0
  48. data/test/spec/api/helper/regex_matching_test.rb +38 -0
  49. data/test/spec/api/helper/should_satisfy_test.rb +37 -0
  50. data/test/spec/api/helper/throwing_test.rb +56 -0
  51. data/test/spec/api/helper/true_false_special_case_test.rb +87 -0
  52. data/test/spec/api/helper/typing_test.rb +107 -0
  53. data/test/spec/api/mock_test.rb +161 -0
  54. data/test/spec/runner/backtrace_tweaker_test.rb +20 -0
  55. data/test/spec/runner/context_runner_test.rb +19 -0
  56. data/test/spec/runner/context_test.rb +29 -0
  57. data/test/spec/runner/execution_context_test.rb +13 -0
  58. data/test/spec/runner/option_parser_test.rb +50 -0
  59. data/test/spec/runner/rdoc_formatter_test.rb +23 -0
  60. data/test/spec/runner/simple_text_reporter_test.rb +128 -0
  61. data/test/spec/runner/specification_test.rb +70 -0
  62. data/test/spec/tool/command_line_test.rb +22 -0
  63. data/test/spec/tool/test_unit_api_spec.rb +61 -0
  64. data/test/spec/tool/test_unit_api_test.rb +61 -0
  65. data/test/spec/tool/test_unit_translator_test.rb +29 -0
  66. data/test/test_helper.rb +8 -0
  67. metadata +89 -67
  68. data/examples/add_specification_spec.rb +0 -15
  69. data/examples/craps.rb +0 -15
  70. data/examples/craps_spec.rb +0 -105
  71. data/examples/dsl_spec.rb +0 -8
  72. data/examples/movie.rb +0 -7
  73. data/examples/movie_list.rb +0 -19
  74. data/examples/movie_spec.rb +0 -37
  75. data/lib/spec/collector.rb +0 -17
  76. data/lib/spec/context.rb +0 -89
  77. data/lib/spec/dsl.rb +0 -23
  78. data/lib/spec/gui_runner.rb +0 -59
  79. data/lib/spec/mock.rb +0 -183
  80. data/lib/spec/text_runner.rb +0 -75
  81. data/test/collection_owner.rb +0 -48
  82. data/test/context_fixtures_test.rb +0 -71
  83. data/test/context_run_test.rb +0 -174
  84. data/test/dsl_test.rb +0 -48
  85. data/test/error_reporting_test.rb +0 -225
  86. data/test/expectations_for_should_have_test.rb +0 -144
  87. data/test/expectations_test.rb +0 -592
  88. data/test/get_classes.rb +0 -6
  89. data/test/gui_runner_test.rb +0 -162
  90. data/test/mock_test.rb +0 -157
  91. data/test/spec_collection_test.rb +0 -39
  92. data/test/specification_addition_test.rb +0 -29
  93. data/test/specification_identification_test.rb +0 -71
  94. data/test/text_runner_test.rb +0 -146
@@ -0,0 +1,13 @@
1
+ module Spec
2
+ module VERSION
3
+ MAJOR = 0
4
+ MINOR = 5
5
+ TINY = 0
6
+
7
+ STRING = [MAJOR, MINOR, TINY].join('.')
8
+
9
+ NAME = "RSCM"
10
+ FULLNAME = "RSpec"
11
+ URL = "http://rspec.rubyforge.org/"
12
+ end
13
+ end
@@ -0,0 +1,121 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ module Spec
4
+ module Api
5
+ module Helper
6
+ class ArbitraryPredicateTest < Test::Unit::TestCase
7
+
8
+ # should.be.xxx
9
+
10
+ def test_should_be_xxx_should_raise_when_target_doesnt_understand_xxx
11
+ assert_raise(NoMethodError) do
12
+ 5.should.be.xxx
13
+ end
14
+ end
15
+
16
+ def test_should_be_xxx_should_raise_when_sending_xxx_to_target_returns_false
17
+ mock = Mock.new("xxx? returns false")
18
+ mock.should_receive(:xxx?).once.with_no_args.and_return(false)
19
+ assert_raise(ExpectationNotMetError) do
20
+ mock.should.be.xxx
21
+ end
22
+ mock.__verify
23
+ end
24
+
25
+ def test_should_be_xxx_should_raise_when_sending_xxx_to_target_returns_nil
26
+ mock = Mock.new("xxx? returns nil")
27
+ mock.should_receive(:xxx?).once.with_no_args.and_return(nil)
28
+ assert_raise(ExpectationNotMetError) do
29
+ mock.should.be.xxx
30
+ end
31
+ mock.__verify
32
+ end
33
+
34
+ def test_should_be_xxx_should_not_raise_when_sending_xxx_to_target_returns_true
35
+ mock = Mock.new("xxx? returns true")
36
+ mock.should_receive(:xxx?).once.with_no_args.and_return(true)
37
+ assert_nothing_raised do
38
+ mock.should.be.xxx
39
+ end
40
+ mock.__verify
41
+ end
42
+
43
+ def test_should_be_xxx_should_not_raise_when_sending_xxx_to_target_returns_something_other_than_true_false_or_nil
44
+ mock = Mock.new("xxx? returns 5")
45
+ mock.should_receive(:xxx?).once.with_no_args.and_return(5)
46
+ assert_nothing_raised do
47
+ mock.should.be.xxx
48
+ end
49
+ mock.__verify
50
+ end
51
+
52
+ # should.be.xxx(args)
53
+
54
+ def test_should_be_xxx_with_args_passes_args_properly
55
+ mock = Mock.new("xxx?(1 2 3) returns true")
56
+ mock.should_receive(:xxx?).once.with(1, 2, 3).and_return(true)
57
+ assert_nothing_raised do
58
+ mock.should.be.xxx(1, 2, 3)
59
+ end
60
+ mock.__verify
61
+ end
62
+
63
+ # should.not.be.xxx
64
+
65
+ def test_should_not_be_xxx_should_raise_when_target_doesnt_understand_xxx
66
+ assert_raise(NoMethodError) do
67
+ 5.should.not.be.xxx
68
+ end
69
+ end
70
+
71
+ def test_should_not_be_xxx_should_raise_when_sending_xxx_to_target_returns_true
72
+ mock = Mock.new("xxx? returns true")
73
+ mock.should_receive(:xxx?).once.with_no_args.and_return(true)
74
+ assert_raise(ExpectationNotMetError) do
75
+ mock.should.not.be.xxx
76
+ end
77
+ mock.__verify
78
+ end
79
+
80
+ def test_should_not_be_xxx_shouldnt_raise_when_sending_xxx_to_target_returns_nil
81
+ mock = Mock.new("xxx? returns nil")
82
+ mock.should_receive(:xxx?).once.with_no_args.and_return(nil)
83
+ assert_nothing_raised do
84
+ mock.should.not.be.xxx
85
+ end
86
+ mock.__verify
87
+ end
88
+
89
+ def test_should_not_be_xxx_shouldnt_raise_when_sending_xxx_to_target_returns_false
90
+ mock = Mock.new("xxx? returns false")
91
+ mock.should_receive(:xxx?).once.with_no_args.and_return(false)
92
+ assert_nothing_raised do
93
+ mock.should.not.be.xxx
94
+ end
95
+ mock.__verify
96
+ end
97
+
98
+ def test_should_not_be_xxx_should_raise_when_sending_xxx_to_target_returns_something_other_than_true_false_or_nil
99
+ mock = Mock.new("xxx? returns 5")
100
+ mock.should_receive(:xxx?).once.with_no_args.and_return(5)
101
+ assert_raise(ExpectationNotMetError) do
102
+ mock.should.not.be.xxx
103
+ end
104
+ mock.__verify
105
+ end
106
+
107
+ # should.be.xxx(args)
108
+
109
+ def test_should_not_be_xxx_with_args_passes_args_properly
110
+ mock = Mock.new("xxx?(1 2 3) returns false")
111
+ mock.should_receive(:xxx?).once.with(1, 2, 3).and_return(false)
112
+ assert_nothing_raised do
113
+ mock.should.not.be.xxx(1, 2, 3)
114
+ end
115
+ mock.__verify
116
+ end
117
+
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,117 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ module Spec
4
+ module Api
5
+ module Helper
6
+ class ContainmentTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @dummy = 'dummy'
10
+ @equal_dummy = 'dummy'
11
+ @another_dummy = 'another_dummy'
12
+ @nil_var = nil
13
+ end
14
+
15
+ # should_include
16
+
17
+ def test_should_include_shouldnt_raise_when_string_inclusion_is_present
18
+ assert_nothing_raised do
19
+ @dummy.should.include "mm"
20
+ end
21
+ end
22
+
23
+ def test_should_include_should_raise_when_string_inclusion_is_missing
24
+ assert_raise(ExpectationNotMetError) do
25
+ @dummy.should.include "abc"
26
+ end
27
+ end
28
+
29
+ def test_should_include_shouldnt_raise_when_array_inclusion_is_present
30
+ assert_nothing_raised do
31
+ [1, 2, 3].should.include 2
32
+ end
33
+ end
34
+
35
+ def test_should_include_should_raise_when_array_inclusion_is_missing
36
+ assert_raise(ExpectationNotMetError) do
37
+ [1, 2, 3].should.include 5
38
+ end
39
+ end
40
+
41
+ def test_should_include_shouldnt_raise_when_hash_inclusion_is_present
42
+ assert_nothing_raised do
43
+ {"a"=>1}.should.include "a"
44
+ end
45
+ end
46
+
47
+ def test_should_include_should_raise_when_hash_inclusion_is_missing
48
+ assert_raise(ExpectationNotMetError) do
49
+ {"a"=>1}.should.include "b"
50
+ end
51
+ end
52
+
53
+ def test_should_include_shouldnt_raise_when_enumerable_inclusion_is_present
54
+ assert_nothing_raised do
55
+ IO.constants.should.include "SEEK_SET"
56
+ end
57
+ end
58
+
59
+ def test_should_include_should_raise_when_enumerable_inclusion_is_missing
60
+ assert_raise(ExpectationNotMetError) do
61
+ IO.constants.should.include "BLAH"
62
+ end
63
+ end
64
+
65
+ # should_not_include
66
+
67
+ def test_should_not_include_shouldnt_raise_when_string_inclusion_is_missing
68
+ assert_nothing_raised do
69
+ @dummy.should.not.include "abc"
70
+ end
71
+ end
72
+
73
+ def test_should_not_include_should_raise_when_string_inclusion_is_present
74
+ assert_raise(ExpectationNotMetError) do
75
+ @dummy.should.not.include "mm"
76
+ end
77
+ end
78
+
79
+ def test_should_not_include_shouldnt_raise_when_array_inclusion_is_missing
80
+ assert_nothing_raised do
81
+ [1, 2, 3].should.not.include 5
82
+ end
83
+ end
84
+
85
+ def test_should_not_include_should_raise_when_array_inclusion_is_present
86
+ assert_raise(ExpectationNotMetError) do
87
+ [1, 2, 3].should.not.include 2
88
+ end
89
+ end
90
+
91
+ def test_should_not_include_shouldnt_raise_when_hash_inclusion_is_missing
92
+ assert_nothing_raised do
93
+ {"a"=>1}.should.not.include "b"
94
+ end
95
+ end
96
+
97
+ def test_should_not_include_should_raise_when_hash_inclusion_is_present
98
+ assert_raise(ExpectationNotMetError) do
99
+ {"a"=>1}.should.not.include "a"
100
+ end
101
+ end
102
+
103
+ def test_should_not_include_shouldnt_raise_when_enumerable_inclusion_is_present
104
+ assert_nothing_raised do
105
+ IO.constants.should.not.include "BLAH"
106
+ end
107
+ end
108
+
109
+ def test_should_not_include_should_raise_when_enumerable_inclusion_is_missing
110
+ assert_raise(ExpectationNotMetError) do
111
+ IO.constants.should.not.include "SEEK_SET"
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,46 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ module Spec
4
+ module Api
5
+ module Helper
6
+ class EqualityTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @dummy = 'dummy'
10
+ @equal_dummy = 'dummy'
11
+ @another_dummy = 'another_dummy'
12
+ @nil_var = nil
13
+ end
14
+
15
+ # should.equal
16
+
17
+ def test_should_equal_should_not_raise_when_objects_are_equal
18
+ assert_nothing_raised do
19
+ @dummy.should.equal @equal_dummy
20
+ end
21
+ end
22
+
23
+ def test_should_equal_should_raise_when_objects_are_not_equal
24
+ assert_raise(ExpectationNotMetError) do
25
+ @dummy.should.equal @another_dummy
26
+ end
27
+ end
28
+
29
+ # should.not.equal
30
+
31
+ def test_should_not_equal_should_not_raise_when_objects_are_not_equal
32
+ assert_nothing_raised do
33
+ @dummy.should.not.equal @another_dummy
34
+ end
35
+ end
36
+
37
+ def test_should_not_equal_should_raise_when_objects_are_not_equal
38
+ assert_raise(ExpectationNotMetError) do
39
+ @dummy.should.not.equal @equal_dummy
40
+ end
41
+ end
42
+
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,68 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ module Spec
4
+ module Api
5
+ module Helper
6
+ class IdentityTest < Test::Unit::TestCase
7
+
8
+ def setup
9
+ @dummy = 'dummy'
10
+ @equal_dummy = 'dummy'
11
+ @another_dummy = 'another_dummy'
12
+ @nil_var = nil
13
+ end
14
+
15
+ def test_should_be_same_as_should_not_raise_when_objects_are_same
16
+ assert_nothing_raised do
17
+ @dummy.should.be @dummy
18
+ end
19
+ end
20
+
21
+ def test_should_be_same_as_should_raise_when_objects_are_not_same
22
+ assert_raise(ExpectationNotMetError) do
23
+ @dummy.should.be @equal_dummy
24
+ end
25
+ end
26
+
27
+ def test_should_be_nil_should_not_raise_when_object_is_nil
28
+ assert_nothing_raised do
29
+ @nil_var.should.be nil
30
+ end
31
+ end
32
+
33
+ def test_should_be_nil_should_raise_when_object_is_not_nil
34
+ assert_raise(ExpectationNotMetError) do
35
+ @dummy.should.be nil
36
+ end
37
+ end
38
+
39
+ # should.not.be
40
+
41
+ def test_should_not_be_same_as_should_not_raise_when_objects_are_not_same
42
+ assert_nothing_raised do
43
+ @dummy.should.not.be @equal_dummy
44
+ end
45
+ end
46
+
47
+ def test_should_not_be_same_as_should_raise_when_objects_are_not_same
48
+ assert_raise(ExpectationNotMetError) do
49
+ @dummy.should.not.be @dummy
50
+ end
51
+ end
52
+
53
+ def test_should_not_be_nil_should_not_raise_when_object_is_not_nil
54
+ assert_nothing_raised do
55
+ @dummy.should.not.be nil
56
+ end
57
+ end
58
+
59
+ def test_should_not_be_nil_should_raise_when_object_is_nil
60
+ assert_raise(ExpectationNotMetError) do
61
+ @nil_var.should.not.be nil
62
+ end
63
+ end
64
+
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,50 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ module Spec
4
+ module Api
5
+ module Helper
6
+ class RaisingTest < Test::Unit::TestCase
7
+
8
+ # should.raise
9
+
10
+ def test_should_raise_should_pass_when_proper_exception_is_raised
11
+ assert_nothing_raised do
12
+ proc { ''.nonexistant_method }.should.raise NoMethodError
13
+ end
14
+ end
15
+
16
+ def test_should_raise_should_fail_when_wrong_exception_is_raised
17
+ assert_raise(ExpectationNotMetError) do
18
+ proc { ''.nonexistant_method }.should.raise SyntaxError
19
+ end
20
+ end
21
+
22
+ def test_should_raise_should_fail_when_no_exception_is_raised
23
+ assert_raise(ExpectationNotMetError) do
24
+ proc {''.to_s}.should.raise NoMethodError
25
+ end
26
+ end
27
+
28
+ # should.not.raise
29
+
30
+ def test_should_not_raise_should_fail_when_specific_exception_is_raised
31
+ assert_raise(ExpectationNotMetError) do
32
+ proc { ''.nonexistant_method }.should.not.raise NoMethodError
33
+ end
34
+ end
35
+
36
+ def test_should_not_raise_should_pass_when_other_exception_is_raised
37
+ assert_nothing_raised do
38
+ proc { ''.nonexistant_method }.should.not.raise SyntaxError
39
+ end
40
+ end
41
+
42
+ def test_should_not_raise_should_pass_when_no_exception_is_raised
43
+ assert_nothing_raised do
44
+ proc { ''.to_s }.should.not.raise NoMethodError
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,38 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ module Spec
4
+ module Api
5
+ module Helper
6
+ class RegexMatchingTest < Test::Unit::TestCase
7
+
8
+ # should.match
9
+
10
+ def test_should_match_should_not_raise_when_objects_match
11
+ assert_nothing_raised do
12
+ "hi aslak".should.match /aslak/
13
+ end
14
+ end
15
+
16
+ def test_should_equal_should_raise_when_objects_do_not_match
17
+ assert_raise(ExpectationNotMetError) do
18
+ "hi aslak".should.match /steve/
19
+ end
20
+ end
21
+
22
+ # should.not.match
23
+
24
+ def test_should_not_match_should_not_raise_when_objects_do_not_match
25
+ assert_nothing_raised do
26
+ "hi aslak".should.not.match /steve/
27
+ end
28
+ end
29
+
30
+ def test_should_not_match_should_raise_when_objects_match
31
+ assert_raise(ExpectationNotMetError) do
32
+ "hi aslak".should.not.match /aslak/
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end