rspec 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +7 -12
- data/Rakefile +17 -12
- data/TUTORIAL +1 -1
- data/WHY_RSPEC +115 -0
- data/bin/spec +17 -4
- data/bin/test2rspec +35 -0
- data/examples/airport_spec.rb +35 -0
- data/examples/mocking_spec.rb +16 -0
- data/examples/spec_framework_spec.rb +28 -0
- data/examples/stack.rb +36 -0
- data/examples/stack_spec.rb +112 -0
- data/lib/spec.rb +5 -18
- data/lib/spec/api.rb +4 -0
- data/lib/spec/{exceptions.rb → api/exceptions.rb} +1 -1
- data/lib/spec/{expectations.rb → api/expectations.rb} +5 -4
- data/lib/spec/api/helper.rb +10 -0
- data/lib/spec/{have_helper.rb → api/helper/have_helper.rb} +1 -1
- data/lib/spec/{instance_helper.rb → api/helper/instance_helper.rb} +0 -0
- data/lib/spec/{instance_negator.rb → api/helper/instance_negator.rb} +0 -0
- data/lib/spec/{kind_helper.rb → api/helper/kind_helper.rb} +0 -0
- data/lib/spec/{kind_negator.rb → api/helper/kind_negator.rb} +0 -0
- data/lib/spec/{respond_helper.rb → api/helper/respond_helper.rb} +0 -0
- data/lib/spec/{respond_negator.rb → api/helper/respond_negator.rb} +0 -0
- data/lib/spec/{should_base.rb → api/helper/should_base.rb} +6 -4
- data/lib/spec/{should_helper.rb → api/helper/should_helper.rb} +12 -0
- data/lib/spec/{should_negator.rb → api/helper/should_negator.rb} +11 -0
- data/lib/spec/api/mock.rb +184 -0
- data/lib/spec/rake/spectask.rb +153 -0
- data/lib/spec/runner.rb +9 -0
- data/lib/spec/runner/backtrace_tweaker.rb +17 -0
- data/lib/spec/runner/context.rb +47 -0
- data/lib/spec/runner/context_runner.rb +52 -0
- data/lib/spec/runner/execution_context.rb +15 -0
- data/lib/spec/runner/instance_exec.rb +15 -0
- data/lib/spec/runner/kernel_ext.rb +6 -0
- data/lib/spec/runner/option_parser.rb +41 -0
- data/lib/spec/runner/rdoc_formatter.rb +17 -0
- data/lib/spec/runner/simple_text_reporter.rb +92 -0
- data/lib/spec/runner/specification.rb +42 -0
- data/lib/spec/tool/command_line.rb +39 -0
- data/lib/spec/tool/test_unit_translator.rb +112 -0
- data/lib/spec/version.rb +13 -0
- data/test/spec/api/helper/arbitrary_predicate_test.rb +121 -0
- data/test/spec/api/helper/containment_test.rb +117 -0
- data/test/spec/api/helper/equality_test.rb +46 -0
- data/test/spec/api/helper/identity_test.rb +68 -0
- data/test/spec/api/helper/raising_test.rb +50 -0
- data/test/spec/api/helper/regex_matching_test.rb +38 -0
- data/test/spec/api/helper/should_satisfy_test.rb +37 -0
- data/test/spec/api/helper/throwing_test.rb +56 -0
- data/test/spec/api/helper/true_false_special_case_test.rb +87 -0
- data/test/spec/api/helper/typing_test.rb +107 -0
- data/test/spec/api/mock_test.rb +161 -0
- data/test/spec/runner/backtrace_tweaker_test.rb +20 -0
- data/test/spec/runner/context_runner_test.rb +19 -0
- data/test/spec/runner/context_test.rb +29 -0
- data/test/spec/runner/execution_context_test.rb +13 -0
- data/test/spec/runner/option_parser_test.rb +50 -0
- data/test/spec/runner/rdoc_formatter_test.rb +23 -0
- data/test/spec/runner/simple_text_reporter_test.rb +128 -0
- data/test/spec/runner/specification_test.rb +70 -0
- data/test/spec/tool/command_line_test.rb +22 -0
- data/test/spec/tool/test_unit_api_spec.rb +61 -0
- data/test/spec/tool/test_unit_api_test.rb +61 -0
- data/test/spec/tool/test_unit_translator_test.rb +29 -0
- data/test/test_helper.rb +8 -0
- metadata +89 -67
- data/examples/add_specification_spec.rb +0 -15
- data/examples/craps.rb +0 -15
- data/examples/craps_spec.rb +0 -105
- data/examples/dsl_spec.rb +0 -8
- data/examples/movie.rb +0 -7
- data/examples/movie_list.rb +0 -19
- data/examples/movie_spec.rb +0 -37
- data/lib/spec/collector.rb +0 -17
- data/lib/spec/context.rb +0 -89
- data/lib/spec/dsl.rb +0 -23
- data/lib/spec/gui_runner.rb +0 -59
- data/lib/spec/mock.rb +0 -183
- data/lib/spec/text_runner.rb +0 -75
- data/test/collection_owner.rb +0 -48
- data/test/context_fixtures_test.rb +0 -71
- data/test/context_run_test.rb +0 -174
- data/test/dsl_test.rb +0 -48
- data/test/error_reporting_test.rb +0 -225
- data/test/expectations_for_should_have_test.rb +0 -144
- data/test/expectations_test.rb +0 -592
- data/test/get_classes.rb +0 -6
- data/test/gui_runner_test.rb +0 -162
- data/test/mock_test.rb +0 -157
- data/test/spec_collection_test.rb +0 -39
- data/test/specification_addition_test.rb +0 -29
- data/test/specification_identification_test.rb +0 -71
- data/test/text_runner_test.rb +0 -146
@@ -0,0 +1,37 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../test_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Api
|
5
|
+
module Helper
|
6
|
+
class ShouldSatisfyTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def test_should_raise_exception_when_block_yields_false
|
9
|
+
assert_raise(ExpectationNotMetError) do
|
10
|
+
5.should.satisfy { false }
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_should_not_raise_exception_when_block_yields_true
|
15
|
+
assert_nothing_raised do
|
16
|
+
5.should.satisfy { true }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# should.not.satisfy
|
21
|
+
|
22
|
+
def test_should_raise_exception_when_block_yields_false
|
23
|
+
assert_raise(ExpectationNotMetError) do
|
24
|
+
5.should.not.satisfy { true }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_should_not_raise_exception_when_block_yields_true
|
29
|
+
assert_nothing_raised do
|
30
|
+
5.should.not.satisfy { false }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../test_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Api
|
5
|
+
module Helper
|
6
|
+
class ThrowingTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
# should.raise
|
9
|
+
|
10
|
+
def test_should_throw_should_pass_when_proper_symbol_is_thrown
|
11
|
+
assert_nothing_raised do
|
12
|
+
proc { throw :foo }.should.throw :foo
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_should_throw_should_fail_when_wrong_exception_is_thrown
|
17
|
+
assert_raise(ExpectationNotMetError) do
|
18
|
+
proc { throw :bar }.should.throw :foo
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_should_throw_should_fail_when_no_symbol_is_thrown
|
23
|
+
assert_raise(ExpectationNotMetError) do
|
24
|
+
proc {''.to_s}.should.throw :foo
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# should.not.throw
|
29
|
+
|
30
|
+
def test_should_not_throw_should_fail_when_specific_symbol_is_thrown
|
31
|
+
assert_raise(ExpectationNotMetError) do
|
32
|
+
proc { throw :foo }.should.not.throw :foo
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_should_not_throw_should_pass_when_other_symbol_is_thrown
|
37
|
+
assert_nothing_raised do
|
38
|
+
proc { throw :bar }.should.not.throw :foo
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_should_not_throw_should_pass_when_no_symbol_is_thrown
|
43
|
+
assert_nothing_raised do
|
44
|
+
proc { ''.to_s }.should.not.throw :foo
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_should_not_throw_should_pass_when_no_symbol_is_thrown_and_none_is_specified
|
49
|
+
assert_nothing_raised do
|
50
|
+
proc { ''.to_s }.should.not.throw
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../test_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Api
|
5
|
+
module Helper
|
6
|
+
class TrueFalseSpecialCaseTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
# should.be true
|
9
|
+
|
10
|
+
def test_should_be_true_should_raise_when_object_is_nil
|
11
|
+
assert_raise(ExpectationNotMetError) do
|
12
|
+
nil.should.be true
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_should_be_true_should_raise_when_object_is_false
|
17
|
+
assert_raise(ExpectationNotMetError) do
|
18
|
+
false.should.be true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_should_be_true_shouldnt_raise_when_object_is_true
|
23
|
+
assert_nothing_raised do
|
24
|
+
true.should.be true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_should_be_true_shouldnt_raise_when_object_is_a_number
|
29
|
+
assert_nothing_raised do
|
30
|
+
5.should.be true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_should_be_true_shouldnt_raise_when_object_is_a_string
|
35
|
+
assert_nothing_raised do
|
36
|
+
"hello".should.be true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_should_be_true_shouldnt_raise_when_object_is_a_some_random_object
|
41
|
+
assert_nothing_raised do
|
42
|
+
self.should.be true
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# should.be false
|
47
|
+
|
48
|
+
def test_should_be_false_shouldnt_raise_when_object_is_nil
|
49
|
+
assert_nothing_raised do
|
50
|
+
nil.should.be false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_should_be_false_shouldnt_raise_when_object_is_false
|
55
|
+
assert_nothing_raised do
|
56
|
+
false.should.be false
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_should_be_false_should_raise_when_object_is_true
|
61
|
+
assert_raise(ExpectationNotMetError) do
|
62
|
+
true.should.be false
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_should_be_false_shouldnt_raise_when_object_is_a_number
|
67
|
+
assert_raise(ExpectationNotMetError) do
|
68
|
+
5.should.be false
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_should_be_false_shouldnt_raise_when_object_is_a_string
|
73
|
+
assert_raise(ExpectationNotMetError) do
|
74
|
+
"hello".should.be false
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_should_be_false_shouldnt_raise_when_object_is_a_some_random_object
|
79
|
+
assert_raise(ExpectationNotMetError) do
|
80
|
+
self.should.be false
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,107 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../test_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Api
|
5
|
+
module Helper
|
6
|
+
class TypeTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
# should.be.an.instance.of <class>
|
9
|
+
|
10
|
+
def test_should_be_an_instance_of_should_pass_when_target_is_specified_class
|
11
|
+
assert_nothing_raised do
|
12
|
+
5.should.be.an.instance.of Fixnum
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_should_be_an_instance_of_should_fail_when_target_is_not_specified_class
|
17
|
+
assert_raise(ExpectationNotMetError) do
|
18
|
+
5.should.be.an.instance.of Integer
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# should.be.a.kind.of <class>
|
23
|
+
|
24
|
+
def test_should_be_a_kind_of_should_pass_when_target_is_of_specified_class
|
25
|
+
assert_nothing_raised do
|
26
|
+
5.should.be.a.kind.of Fixnum
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_should_be_a_kind_of_should_pass_when_target_is_of_subclass_of_specified_class
|
31
|
+
assert_nothing_raised do
|
32
|
+
5.should.be.a.kind.of Integer
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_should_be_an_instance_of_should_fail_when_target_is_not_specified_class
|
37
|
+
assert_raise(ExpectationNotMetError) do
|
38
|
+
5.should.be.a.kind.of String
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# should.not.be.an.instance_of <class>
|
43
|
+
|
44
|
+
def test_should_not_be_an_instance_of_should_fail_when_target_is_of_specified_class
|
45
|
+
assert_raise(ExpectationNotMetError) do
|
46
|
+
'hello'.should.not.be.an.instance.of String
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_should_be_an_instance_of_should_pass_when_target_is_not_of_specified_class
|
51
|
+
assert_nothing_raised do
|
52
|
+
[].should.not.be.an.instance.of String
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# should.be.a.kind.of <class>
|
57
|
+
|
58
|
+
def test_should_not_be_a_kind_of_should_fail_when_target_is_of_specified_class
|
59
|
+
assert_raise(ExpectationNotMetError) do
|
60
|
+
5.should.not.be.a.kind.of Fixnum
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_should_not_be_a_kind_of_should_fail_when_target_is_of_subclass_of_specified_class
|
65
|
+
assert_raise(ExpectationNotMetError) do
|
66
|
+
5.should.not.be.a.kind.of Integer
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_should_not_be_an_instance_of_should_pass_when_target_is_not_specified_class
|
71
|
+
assert_nothing_raised do
|
72
|
+
5.should.not.be.a.kind.of String
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# should.respond.to <message>
|
77
|
+
|
78
|
+
def test_should_respond_to_should_pass_when_target_does
|
79
|
+
assert_nothing_raised do
|
80
|
+
"".should.respond.to :length
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_should_respond_to_should_fail_when_target_doesnt
|
85
|
+
assert_raise(ExpectationNotMetError) do
|
86
|
+
"".should.respond.to :connect
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
# should.not.respond.to <message>
|
91
|
+
|
92
|
+
def test_not_should_respond_to_should_fail_when_target_does
|
93
|
+
assert_raise(ExpectationNotMetError) do
|
94
|
+
"".should.not.respond.to :length
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def test_not_should_respond_to_should_pass_when_target_doesnt
|
99
|
+
assert_nothing_raised do
|
100
|
+
"".should.not.respond.to :connect
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../test_helper'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Api
|
5
|
+
|
6
|
+
class MockTest < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@mock = Mock.new("test mock")
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_should_report_line_number_of_expectation_of_unreceived_message
|
13
|
+
@mock.should_receive(:wont_happen).with("x", 3)
|
14
|
+
|
15
|
+
begin
|
16
|
+
@mock.__verify
|
17
|
+
rescue MockExpectationError => e
|
18
|
+
e.backtrace[0].should.match /mock_test\.rb:13:in .test_should_report_line/
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_should_allow_block_to_calculate_return_values
|
24
|
+
@mock.should_receive(:random_call).with("a","b","c").and_return { |a,b,c| c+b+a }
|
25
|
+
assert_equal "cba", @mock.random_call("a","b","c")
|
26
|
+
# TODO: remove __verify when migrating to self-hosting. Verify happens transparently in teardown. (AH)
|
27
|
+
@mock.__verify
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_should_allow_parameter_as_return_value
|
31
|
+
@mock.should_receive(:random_call).with("a","b","c").and_return("booh")
|
32
|
+
assert_equal "booh", @mock.random_call("a","b","c")
|
33
|
+
@mock.__verify
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_return_nil_if_no_return_value_set
|
37
|
+
@mock.should_receive(:random_call).with("a","b","c")
|
38
|
+
assert_nil @mock.random_call("a","b","c")
|
39
|
+
@mock.__verify
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_should_test_multiple_calls_to_method_with_same_parameters
|
43
|
+
@mock.should_receive(:random_call).twice.with("a","b","c")
|
44
|
+
@mock.random_call("a","b","c")
|
45
|
+
@mock.random_call("a","b","c")
|
46
|
+
@mock.__verify
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_should_raise_exception_if_parameters_dont_match_when_method_called
|
50
|
+
@mock.should_receive(:random_call).with("a","b","c").and_return("booh")
|
51
|
+
assert_raise(MockExpectationError) {
|
52
|
+
@mock.random_call("a","d","c")
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_should_fail_if_unexpected_method_called
|
57
|
+
assert_raise(MockExpectationError) {
|
58
|
+
@mock.random_call("a","d","c")
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_should_allow_unexpected_methods_if_ignore_missing_set
|
63
|
+
m = Mock.new("null_object", :null_object=>true)
|
64
|
+
m.random_call("a","d","c")
|
65
|
+
m.__verify
|
66
|
+
end
|
67
|
+
|
68
|
+
# TODO: rename to should_raise_exception_telling_what_message_was_not_received
|
69
|
+
def test_should_raise_exception_on_verify_if_call_counts_not_as_expected
|
70
|
+
@mock.should_receive(:random_call).twice.with("a","b","c").and_return("booh")
|
71
|
+
@mock.random_call("a","b","c")
|
72
|
+
assert_raise(MockExpectationError) do
|
73
|
+
@mock.__verify
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_should_use_block_for_expectation_if_provided
|
78
|
+
@mock.should_receive(:random_call) do | a, b |
|
79
|
+
a.should.equal("a")
|
80
|
+
b.should.equal("b")
|
81
|
+
"booh"
|
82
|
+
end
|
83
|
+
assert_equal("booh", @mock.random_call("a", "b"))
|
84
|
+
@mock.__verify
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_failing_expectation_block_throws
|
88
|
+
@mock.should_receive(:random_call) {| a | a.should.be true}
|
89
|
+
assert_raise(MockExpectationError) do
|
90
|
+
@mock.random_call false
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_two_return_values
|
95
|
+
@mock.should_receive(:multi_call).twice.with_no_args.and_return_consecutively([1, 2])
|
96
|
+
assert_equal(1, @mock.multi_call)
|
97
|
+
assert_equal(2, @mock.multi_call)
|
98
|
+
@mock.__verify
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_repeating_final_return_value
|
102
|
+
@mock.should_receive(:multi_call).at_least_once.with_no_args.and_return_consecutively([1, 2])
|
103
|
+
assert_equal(1, @mock.multi_call)
|
104
|
+
assert_equal(2, @mock.multi_call)
|
105
|
+
assert_equal(2, @mock.multi_call)
|
106
|
+
@mock.__verify
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_should_throw_on_call_of_never_method
|
110
|
+
@mock.should_receive(:random_call).never
|
111
|
+
assert_raise(MockExpectationError) do
|
112
|
+
@mock.random_call
|
113
|
+
@mock.__verify
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
def test_should_throw_if_at_least_once_method_not_called
|
118
|
+
@mock.should_receive(:random_call).at_least_once
|
119
|
+
assert_raise(MockExpectationError) do
|
120
|
+
@mock.__verify
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_should_not_throw_if_any_number_of_times_method_not_called
|
125
|
+
@mock.should_receive(:random_call).any_number_of_times
|
126
|
+
@mock.__verify
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_should_not_throw_if_any_number_of_times_method_is_called
|
130
|
+
@mock.should_receive(:random_call).any_number_of_times
|
131
|
+
@mock.random_call
|
132
|
+
@mock.__verify
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_should_not_throw_if_at_least_once_method_is_called_twice
|
136
|
+
@mock.should_receive(:random_call).at_least_once
|
137
|
+
@mock.random_call
|
138
|
+
@mock.random_call
|
139
|
+
@mock.__verify
|
140
|
+
end
|
141
|
+
|
142
|
+
def test_should_support_mutiple_calls_with_different_args
|
143
|
+
@mock.should_receive(:random_call).once.with(1)
|
144
|
+
@mock.should_receive(:random_call).once.with(2)
|
145
|
+
@mock.random_call(1)
|
146
|
+
@mock.random_call(2)
|
147
|
+
@mock.__verify
|
148
|
+
end
|
149
|
+
|
150
|
+
def test_should_support_multiple_calls_with_different_args_and_counts
|
151
|
+
@mock.should_receive(:random_call).twice.with(1)
|
152
|
+
@mock.should_receive(:random_call).once.with(2)
|
153
|
+
@mock.random_call(1)
|
154
|
+
@mock.random_call(2)
|
155
|
+
@mock.random_call(1)
|
156
|
+
@mock.__verify
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|