rr 0.4.10 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. data/CHANGES +14 -0
  2. data/README.rdoc +67 -13
  3. data/Rakefile +1 -1
  4. data/lib/rr.rb +29 -9
  5. data/lib/rr/adapters/rr_methods.rb +38 -158
  6. data/lib/rr/double.rb +46 -41
  7. data/lib/rr/double_definitions/child_double_definition_creator.rb +23 -0
  8. data/lib/rr/double_definitions/double_definition.rb +212 -0
  9. data/lib/rr/double_definitions/double_definition_creator.rb +153 -0
  10. data/lib/rr/double_definitions/double_definition_creator_proxy.rb +25 -0
  11. data/lib/rr/double_definitions/strategies/implementation/implementation_strategy.rb +15 -0
  12. data/lib/rr/double_definitions/strategies/implementation/proxy.rb +62 -0
  13. data/lib/rr/double_definitions/strategies/implementation/reimplementation.rb +14 -0
  14. data/lib/rr/double_definitions/strategies/scope/instance.rb +15 -0
  15. data/lib/rr/double_definitions/strategies/scope/instance_of_class.rb +43 -0
  16. data/lib/rr/double_definitions/strategies/scope/scope_strategy.rb +15 -0
  17. data/lib/rr/double_definitions/strategies/strategy.rb +70 -0
  18. data/lib/rr/double_definitions/strategies/verification/dont_allow.rb +34 -0
  19. data/lib/rr/double_definitions/strategies/verification/mock.rb +44 -0
  20. data/lib/rr/double_definitions/strategies/verification/stub.rb +45 -0
  21. data/lib/rr/double_definitions/strategies/verification/verification_strategy.rb +15 -0
  22. data/lib/rr/double_injection.rb +21 -15
  23. data/lib/rr/expectations/argument_equality_expectation.rb +2 -1
  24. data/lib/rr/space.rb +23 -22
  25. data/lib/rr/wildcard_matchers/hash_including.rb +29 -0
  26. data/lib/rr/wildcard_matchers/satisfy.rb +26 -0
  27. data/spec/high_level_spec.rb +111 -64
  28. data/spec/rr/adapters/rr_methods_argument_matcher_spec.rb +1 -1
  29. data/spec/rr/adapters/rr_methods_creator_spec.rb +99 -315
  30. data/spec/rr/adapters/rr_methods_space_spec.rb +90 -109
  31. data/spec/rr/adapters/rr_methods_spec_helper.rb +1 -1
  32. data/spec/rr/adapters/rr_methods_times_matcher_spec.rb +1 -1
  33. data/spec/rr/double_definitions/child_double_definition_creator_spec.rb +103 -0
  34. data/spec/rr/double_definitions/double_definition_creator_proxy_spec.rb +83 -0
  35. data/spec/rr/double_definitions/double_definition_creator_spec.rb +495 -0
  36. data/spec/rr/double_definitions/double_definition_spec.rb +1116 -0
  37. data/spec/rr/double_injection/double_injection_bind_spec.rb +111 -0
  38. data/spec/rr/double_injection/double_injection_dispatching_spec.rb +245 -0
  39. data/spec/rr/{double → double_injection}/double_injection_has_original_method_spec.rb +9 -9
  40. data/spec/rr/double_injection/double_injection_reset_spec.rb +90 -0
  41. data/spec/rr/double_injection/double_injection_spec.rb +77 -0
  42. data/spec/rr/double_injection/double_injection_verify_spec.rb +29 -0
  43. data/spec/rr/double_spec.rb +156 -136
  44. data/spec/rr/errors/rr_error_spec.rb +1 -1
  45. data/spec/rr/expectations/any_argument_expectation_spec.rb +1 -1
  46. data/spec/rr/expectations/anything_argument_equality_expectation_spec.rb +6 -30
  47. data/spec/rr/expectations/argument_equality_expectation_spec.rb +35 -18
  48. data/spec/rr/expectations/boolean_argument_equality_expectation_spec.rb +22 -41
  49. data/spec/rr/expectations/hash_including_argument_equality_expectation_spec.rb +82 -0
  50. data/spec/rr/expectations/hash_including_spec.rb +17 -0
  51. data/spec/rr/expectations/satisfy_argument_equality_expectation_spec.rb +59 -0
  52. data/spec/rr/expectations/satisfy_spec.rb +14 -0
  53. data/spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb +30 -28
  54. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb +55 -54
  55. data/spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb +49 -48
  56. data/spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +9 -7
  57. data/spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb +77 -76
  58. data/spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb +58 -57
  59. data/spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb +59 -58
  60. data/spec/rr/expectations/times_called_expectation/times_called_expectation_spec.rb +25 -24
  61. data/spec/rr/rspec/rspec_adapter_spec.rb +12 -11
  62. data/spec/rr/rspec/rspec_backtrace_tweaking_spec.rb +10 -8
  63. data/spec/rr/rspec/rspec_usage_spec.rb +1 -1
  64. data/spec/rr/space/hash_with_object_id_key_spec.rb +1 -1
  65. data/spec/rr/space/space_spec.rb +330 -192
  66. data/spec/rr/test_unit/test_helper.rb +1 -2
  67. data/spec/rr/test_unit/test_unit_backtrace_test.rb +1 -2
  68. data/spec/rr/test_unit/test_unit_integration_test.rb +1 -2
  69. data/spec/rr/times_called_matchers/any_times_matcher_spec.rb +1 -1
  70. data/spec/rr/times_called_matchers/at_least_matcher_spec.rb +1 -1
  71. data/spec/rr/times_called_matchers/at_most_matcher_spec.rb +1 -1
  72. data/spec/rr/times_called_matchers/integer_matcher_spec.rb +1 -1
  73. data/spec/rr/times_called_matchers/proc_matcher_spec.rb +1 -1
  74. data/spec/rr/times_called_matchers/range_matcher_spec.rb +1 -1
  75. data/spec/rr/times_called_matchers/times_called_matcher_spec.rb +1 -1
  76. data/spec/rr/wildcard_matchers/anything_spec.rb +24 -0
  77. data/spec/rr/wildcard_matchers/boolean_spec.rb +36 -0
  78. data/spec/rr/wildcard_matchers/duck_type_spec.rb +52 -0
  79. data/spec/rr/wildcard_matchers/is_a_spec.rb +32 -0
  80. data/spec/rr/wildcard_matchers/numeric_spec.rb +32 -0
  81. data/spec/rr/wildcard_matchers/range_spec.rb +35 -0
  82. data/spec/rr/wildcard_matchers/regexp_spec.rb +43 -0
  83. data/spec/rr_spec.rb +28 -0
  84. data/spec/spec_helper.rb +84 -0
  85. metadata +43 -29
  86. data/lib/rr/double_creator.rb +0 -271
  87. data/lib/rr/double_definition.rb +0 -179
  88. data/lib/rr/double_definition_builder.rb +0 -44
  89. data/lib/rr/double_definition_creator.rb +0 -156
  90. data/lib/rr/double_definition_creator_proxy.rb +0 -20
  91. data/spec/rr/double/double_injection_bind_spec.rb +0 -105
  92. data/spec/rr/double/double_injection_dispatching_spec.rb +0 -228
  93. data/spec/rr/double/double_injection_reset_spec.rb +0 -86
  94. data/spec/rr/double/double_injection_spec.rb +0 -72
  95. data/spec/rr/double/double_injection_verify_spec.rb +0 -24
  96. data/spec/rr/double_definition_creator_proxy_spec.rb +0 -85
  97. data/spec/rr/double_definition_creator_spec.rb +0 -496
  98. data/spec/rr/double_definition_spec.rb +0 -815
  99. data/spec/rr/expectations/anything_spec.rb +0 -14
  100. data/spec/rr/expectations/boolean_spec.rb +0 -14
  101. data/spec/rr/expectations/duck_type_argument_equality_expectation_spec.rb +0 -71
  102. data/spec/rr/expectations/duck_type_spec.rb +0 -14
  103. data/spec/rr/expectations/is_a_argument_equality_expectation_spec.rb +0 -51
  104. data/spec/rr/expectations/is_a_spec.rb +0 -14
  105. data/spec/rr/expectations/numeric_argument_equality_expectation_spec.rb +0 -47
  106. data/spec/rr/expectations/numeric_spec.rb +0 -14
  107. data/spec/rr/expectations/range_argument_equality_expectation_spec.rb +0 -59
  108. data/spec/rr/expectations/range_spec.rb +0 -10
  109. data/spec/rr/expectations/regexp_argument_equality_expectation_spec.rb +0 -72
  110. data/spec/rr/expectations/regexp_spec.rb +0 -10
@@ -1,4 +1,4 @@
1
- require "spec/spec_helper"
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
2
 
3
3
  module RR
4
4
  module Errors
@@ -1,4 +1,4 @@
1
- require "spec/spec_helper"
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
2
 
3
3
  module RR
4
4
  module Expectations
@@ -1,38 +1,14 @@
1
- require "spec/spec_helper"
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
2
 
3
3
  module RR
4
4
  module Expectations
5
- describe ArgumentEqualityExpectation, "matching anything" do
6
- attr_reader :expectation
7
- before do
8
- @expectation = ArgumentEqualityExpectation.new(anything)
9
- end
10
-
11
- describe "#exact_match? with anything argument" do
12
- it "returns true when passed in an Anything module" do
13
- expectation.should be_exact_match(WildcardMatchers::Anything.new)
14
- end
15
-
16
- it "returns false otherwise" do
17
- expectation.should_not be_exact_match("hello")
18
- expectation.should_not be_exact_match(:hello)
19
- expectation.should_not be_exact_match(1)
20
- expectation.should_not be_exact_match(nil)
21
- expectation.should_not be_exact_match()
22
- end
23
- end
24
-
25
- describe "#wildcard_match? with is_a String argument" do
26
- it "returns true when passed correct number of arguments" do
27
- expectation.should be_wildcard_match(Object.new)
28
- end
29
-
30
- it "returns false when not passed correct number of arguments" do
31
- expectation.should_not be_wildcard_match()
32
- expectation.should_not be_wildcard_match(Object.new, Object.new)
5
+ describe ArgumentEqualityExpectation do
6
+ context "when matching anything" do
7
+ attr_reader :expectation
8
+ before do
9
+ @expectation = ArgumentEqualityExpectation.new(anything)
33
10
  end
34
11
  end
35
12
  end
36
-
37
13
  end
38
14
  end
@@ -1,4 +1,4 @@
1
- require "spec/spec_helper"
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
2
 
3
3
  module RR
4
4
  module Expectations
@@ -28,28 +28,46 @@ module RR
28
28
  end
29
29
 
30
30
  describe "#exact_match?" do
31
- it "returns true when all arguments exactly match" do
32
- expectation.should be_exact_match(1, 2, 3)
33
- expectation.should_not be_exact_match(1, 2)
34
- expectation.should_not be_exact_match(1)
35
- expectation.should_not be_exact_match()
36
- expectation.should_not be_exact_match("does not match")
31
+ context "when all arguments exactly match" do
32
+ it "returns true" do
33
+ expectation.should be_exact_match(1, 2, 3)
34
+ end
35
+ end
36
+
37
+ context "when all arguments do not exactly match" do
38
+ it "returns false" do
39
+ expectation.should_not be_exact_match(1, 2)
40
+ expectation.should_not be_exact_match(1)
41
+ expectation.should_not be_exact_match()
42
+ expectation.should_not be_exact_match("does not match")
43
+ end
37
44
  end
38
45
  end
39
46
 
40
47
  describe "#wildcard_match?" do
41
- it "returns false when not exact match" do
42
- expectation = ArgumentEqualityExpectation.new(1)
43
- expectation.should_not be_wildcard_match(1, 2, 3)
44
- expectation.should_not be_wildcard_match("whatever")
45
- expectation.should_not be_wildcard_match("whatever", "else")
48
+ context "when not an exact match" do
49
+ it "returns false" do
50
+ expectation = ArgumentEqualityExpectation.new(1)
51
+ expectation.should_not be_wildcard_match(1, 2, 3)
52
+ expectation.should_not be_wildcard_match("whatever")
53
+ expectation.should_not be_wildcard_match("whatever", "else")
54
+ end
46
55
  end
47
56
 
48
- it "returns true when exact match" do
49
- expectation = ArgumentEqualityExpectation.new(1, 2)
50
- expectation.should be_wildcard_match(1, 2)
51
- expectation.should_not be_wildcard_match(1)
52
- expectation.should_not be_wildcard_match("whatever", "else")
57
+ context "when an exact match" do
58
+ it "returns true" do
59
+ expectation = ArgumentEqualityExpectation.new(1, 2)
60
+ expectation.should be_wildcard_match(1, 2)
61
+ expectation.should_not be_wildcard_match(1)
62
+ expectation.should_not be_wildcard_match("whatever", "else")
63
+ end
64
+ end
65
+
66
+ context "when not passed correct number of arguments" do
67
+ it "returns false" do
68
+ expectation.should_not be_wildcard_match()
69
+ expectation.should_not be_wildcard_match(Object.new, Object.new)
70
+ end
53
71
  end
54
72
  end
55
73
 
@@ -113,6 +131,5 @@ module RR
113
131
 
114
132
  end
115
133
  end
116
-
117
134
  end
118
135
  end
@@ -1,53 +1,34 @@
1
- require "spec/spec_helper"
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
2
 
3
3
  module RR
4
4
  module Expectations
5
- describe ArgumentEqualityExpectation, "with boolean match" do
6
- attr_reader :expectation
7
-
8
- before do
9
- @expectation = ArgumentEqualityExpectation.new(boolean)
10
- end
11
-
12
- describe "#exact_match?" do
13
- it "returns true when passed in an IsA module" do
14
- expectation.should be_exact_match(WildcardMatchers::Boolean.new)
15
- end
5
+ describe ArgumentEqualityExpectation do
6
+ context "with a boolean matcher" do
7
+ attr_reader :expectation
16
8
 
17
- it "returns false otherwise" do
18
- expectation.should_not be_exact_match("hello")
19
- expectation.should_not be_exact_match(:hello)
20
- expectation.should_not be_exact_match(1)
21
- expectation.should_not be_exact_match(nil)
22
- expectation.should_not be_exact_match(true)
23
- expectation.should_not be_exact_match()
24
- end
25
- end
26
-
27
- describe "#wildcard_match?" do
28
9
  before do
29
- expectation = ArgumentEqualityExpectation.new(boolean)
10
+ @expectation = ArgumentEqualityExpectation.new(boolean)
30
11
  end
31
12
 
32
- it "returns true when passed a Boolean" do
33
- expectation.should be_wildcard_match(true)
34
- expectation.should be_wildcard_match(false)
35
- end
36
-
37
- it "returns false when not passed a Boolean" do
38
- expectation.should_not be_wildcard_match(:not_a_boolean)
39
- end
40
-
41
- it "returns true when an exact match" do
42
- expectation.should be_wildcard_match(boolean)
43
- end
44
-
45
- it "returns false when not passed correct number of arguments" do
46
- expectation.should_not be_wildcard_match()
47
- expectation.should_not be_wildcard_match(true, false)
13
+ describe "#wildcard_match?" do
14
+ before do
15
+ expectation = ArgumentEqualityExpectation.new(boolean)
16
+ end
17
+
18
+ context "when passed a Boolean" do
19
+ it "returns true" do
20
+ expectation.should be_wildcard_match(true)
21
+ expectation.should be_wildcard_match(false)
22
+ end
23
+ end
24
+
25
+ context "when not passed a Boolean" do
26
+ it "returns false" do
27
+ expectation.should_not be_wildcard_match(:not_a_boolean)
28
+ end
29
+ end
48
30
  end
49
31
  end
50
32
  end
51
-
52
33
  end
53
34
  end
@@ -0,0 +1,82 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
+
3
+ module RR
4
+ module Expectations
5
+ describe ArgumentEqualityExpectation, "with HashIncluding argument" do
6
+ attr_reader :expectation, :expected_hash
7
+
8
+ before do
9
+ @expected_hash = {:texas => "Austin", :maine => "Augusta"}
10
+ end
11
+
12
+ describe "#exact_match?" do
13
+ before do
14
+ @expectation = ArgumentEqualityExpectation.new(hash_including(expected_hash))
15
+ end
16
+
17
+ it "returns true when passed in a HashIncluding matcher with the same hash" do
18
+ expectation.should be_exact_match(WildcardMatchers::HashIncluding.new(expected_hash))
19
+ end
20
+
21
+ it "returns false when passed in a HashIncluding matcher with a different argument list" do
22
+ expectation.should_not be_exact_match(WildcardMatchers::HashIncluding.new(:foo => 1))
23
+ end
24
+
25
+ it "returns false otherwise" do
26
+ expectation.should_not be_exact_match("hello")
27
+ expectation.should_not be_exact_match(:hello)
28
+ expectation.should_not be_exact_match(1)
29
+ expectation.should_not be_exact_match(nil)
30
+ expectation.should_not be_exact_match(true)
31
+ expectation.should_not be_exact_match()
32
+ end
33
+ end
34
+
35
+ describe "#wildcard_match?" do
36
+ before do
37
+ @expectation = ArgumentEqualityExpectation.new(hash_including(expected_hash))
38
+ end
39
+
40
+ it "returns true when hash contains same key/values as the expectation" do
41
+ expectation.should be_wildcard_match(expected_hash)
42
+ end
43
+
44
+ it "returns true when hash contains at least expectation's key/values" do
45
+ expectation.should be_wildcard_match(expected_hash.merge(:oregon => "Salem"))
46
+ end
47
+
48
+ it "returns true when passed the same hash, even after the original is modified" do
49
+ original_expected_hash = expected_hash.clone
50
+ expected_hash[:texas] = nil
51
+ expectation.should be_wildcard_match(original_expected_hash)
52
+ end
53
+
54
+ it "returns true even if one of the expectation's values is nil" do
55
+ expectation = ArgumentEqualityExpectation.new(hash_including(:foo => nil))
56
+ expectation.should be_wildcard_match({:foo => nil})
57
+ end
58
+
59
+ it "returns false when hash matches only some required key/values" do
60
+ expectation.should_not be_wildcard_match({:texas => "Austin"})
61
+ end
62
+
63
+ it "returns false when hash matches all the keys but not all the values" do
64
+ expectation.should_not be_wildcard_match({:texas => "Austin", :maine => "Portland"})
65
+ end
66
+
67
+ it "returns false when passed a hash that matches all values but not all keys" do
68
+ expectation.should_not be_wildcard_match({:texas => "Austin", :georgia => "Augusta"})
69
+ end
70
+
71
+ it "returns true when an exact match" do
72
+ expectation.should be_wildcard_match(hash_including(expected_hash))
73
+ end
74
+
75
+ it "returns false when not passed correct number of arguments" do
76
+ expectation.should_not be_wildcard_match()
77
+ expectation.should_not be_wildcard_match(:a, :b)
78
+ end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,17 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
+
3
+ module RR
4
+ module WildcardMatchers
5
+ describe HashIncluding do
6
+ describe "#inspect" do
7
+ it "returns hash_including with expected key/values" do
8
+ expected_hash = {:foo => "bar", :baz => "qux"}
9
+ matcher = HashIncluding.new(expected_hash)
10
+ matcher.inspect.should include("hash_including(")
11
+ matcher.inspect.should include(':foo=>"bar"')
12
+ matcher.inspect.should include(':baz=>"qux"')
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,59 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
+
3
+ module RR
4
+ module Expectations
5
+ describe ArgumentEqualityExpectation, "with Satisfy argument" do
6
+ attr_reader :expectation, :expectation_proc, :expected_value, :satisfy_matcher
7
+
8
+ before do
9
+ @expected_value = :foo
10
+ @expectation_proc = lambda {|argument| argument == expected_value}
11
+ @satisfy_matcher = satisfy(&expectation_proc)
12
+ @expectation = ArgumentEqualityExpectation.new(satisfy_matcher)
13
+ end
14
+
15
+ describe "#exact_match?" do
16
+ before do
17
+ end
18
+
19
+ it "returns true when passed a Satisfy matcher with the same proc" do
20
+ expectation.should be_exact_match(WildcardMatchers::Satisfy.new(expectation_proc))
21
+ end
22
+
23
+ it "returns false when passed a Satisfy matcher with another proc" do
24
+ expectation.should_not be_exact_match(WildcardMatchers::Satisfy.new(lambda {}))
25
+ end
26
+
27
+ it "returns false otherwise" do
28
+ expectation.should_not be_exact_match("hello")
29
+ expectation.should_not be_exact_match(:hello)
30
+ expectation.should_not be_exact_match(1)
31
+ expectation.should_not be_exact_match(nil)
32
+ expectation.should_not be_exact_match(true)
33
+ expectation.should_not be_exact_match()
34
+ end
35
+ end
36
+
37
+ describe "#wildcard_match?" do
38
+ it "returns true when the proc returns a truthy value" do
39
+ (!!expectation_proc.call(expected_value)).should be_true
40
+ expectation.should be_wildcard_match(expected_value)
41
+ end
42
+
43
+ it "returns false when the proc returns a falsey value" do
44
+ (!!expectation_proc.call(:bar)).should be_false
45
+ expectation.should_not be_wildcard_match(:bar)
46
+ end
47
+
48
+ it "returns true when an exact match" do
49
+ expectation.should be_wildcard_match(satisfy_matcher)
50
+ end
51
+
52
+ it "returns false when not passed correct number of arguments" do
53
+ expectation.should_not be_wildcard_match()
54
+ expectation.should_not be_wildcard_match(:a, :b)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,14 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../spec_helper")
2
+
3
+ module RR
4
+ module WildcardMatchers
5
+ describe Satisfy do
6
+ describe "#inspect" do
7
+ it "returns satisfy string" do
8
+ matcher = Satisfy.new(lambda {})
9
+ matcher.inspect.should == "satisfy {block}"
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,41 +1,43 @@
1
- require "spec/spec_helper"
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../../spec_helper")
2
2
 
3
3
  module RR
4
4
  module Expectations
5
- describe TimesCalledExpectation, ' with AnyTimesMatcher' do
6
- it_should_behave_like "RR::Expectations::TimesCalledExpectation"
7
- attr_reader :at_least
5
+ describe TimesCalledExpectation do
6
+ context "when using an AnyTimesMatcher" do
7
+ it_should_behave_like "RR::Expectations::TimesCalledExpectation"
8
+ attr_reader :at_least, :expectation
8
9
 
9
- before do
10
- @at_least = TimesCalledMatchers::AnyTimesMatcher.new
11
- @expectation = TimesCalledExpectation.new(double, at_least)
12
- end
13
-
14
- describe "#verify!" do
15
- it "always passes" do
16
- expectation.verify!
17
- 10.times {expectation.attempt}
18
- expectation.verify!
10
+ before do
11
+ @at_least = TimesCalledMatchers::AnyTimesMatcher.new
12
+ @expectation = TimesCalledExpectation.new(double, at_least)
19
13
  end
20
- end
21
14
 
22
- describe "#attempt?" do
23
- it "always returns true" do
24
- expectation.should be_attempt
25
- 10.times {expectation.attempt}
26
- expectation.should be_attempt
15
+ describe "#verify!" do
16
+ it "always passes" do
17
+ expectation.verify!
18
+ 10.times {expectation.attempt}
19
+ expectation.verify!
20
+ end
27
21
  end
28
- end
29
22
 
30
- describe "#attempt!" do
31
- it "always passes" do
32
- 10.times {expectation.attempt}
23
+ describe "#attempt?" do
24
+ it "always returns true" do
25
+ expectation.should be_attempt
26
+ 10.times {expectation.attempt}
27
+ expectation.should be_attempt
28
+ end
29
+ end
30
+
31
+ describe "#attempt!" do
32
+ it "always passes" do
33
+ 10.times {expectation.attempt}
34
+ end
33
35
  end
34
- end
35
36
 
36
- describe "#terminal?" do
37
- it "returns false" do
38
- expectation.should_not be_terminal
37
+ describe "#terminal?" do
38
+ it "returns false" do
39
+ expectation.should_not be_terminal
40
+ end
39
41
  end
40
42
  end
41
43
  end