rspec 1.2.2 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +31 -1
- data/Manifest.txt +14 -12
- data/Rakefile +1 -1
- data/Upgrade.rdoc +43 -3
- data/examples/failing/failing_implicit_docstrings_example.rb +5 -5
- data/examples/passing/implicit_docstrings_example.rb +3 -3
- data/features/before_and_after_blocks/before_and_after_blocks.feature +20 -21
- data/features/example_groups/example_group_with_should_methods.feature +20 -8
- data/features/example_groups/implicit_docstrings.feature +36 -20
- data/features/example_groups/nested_groups.feature +25 -10
- data/features/extensions/custom_example_group.feature +19 -0
- data/features/formatters/custom_formatter.feature +30 -0
- data/features/heckle/heckle.feature +7 -7
- data/features/interop/examples_and_tests_together.feature +63 -14
- data/features/interop/rspec_output.feature +25 -0
- data/features/interop/test_but_not_test_unit.feature +19 -7
- data/features/interop/test_case_with_should_methods.feature +37 -8
- data/features/matchers/{create_matcher.feature → define_matcher.feature} +54 -30
- data/features/matchers/{create_matcher_outside_rspec.feature → define_matcher_outside_rspec.feature} +7 -7
- data/features/mock_framework_integration/use_flexmock.feature +3 -3
- data/features/mock_framework_integration/use_mocha.feature +3 -3
- data/features/mock_framework_integration/use_rr.feature +3 -3
- data/features/mocks/mix_stubs_and_mocks.feature +4 -4
- data/features/pending/pending_examples.feature +18 -18
- data/features/runner/specify_line_number.feature +32 -0
- data/features/step_definitions/running_rspec_steps.rb +41 -0
- data/features/subject/explicit_subject.feature +4 -4
- data/features/subject/implicit_subject.feature +4 -4
- data/features/support/env.rb +64 -11
- data/features/support/matchers/smart_match.rb +10 -35
- data/lib/spec.rb +1 -0
- data/lib/spec/deprecation.rb +40 -0
- data/lib/spec/dsl/main.rb +10 -5
- data/lib/spec/example.rb +1 -27
- data/lib/spec/example/args_and_options.rb +27 -0
- data/lib/spec/example/before_and_after_hooks.rb +30 -21
- data/lib/spec/example/errors.rb +8 -18
- data/lib/spec/example/example_group_factory.rb +0 -4
- data/lib/spec/example/example_group_methods.rb +27 -41
- data/lib/spec/example/example_group_proxy.rb +12 -22
- data/lib/spec/example/example_methods.rb +8 -18
- data/lib/spec/example/example_proxy.rb +4 -4
- data/lib/spec/example/pending.rb +3 -4
- data/lib/spec/example/predicate_matchers.rb +1 -1
- data/lib/spec/example/subject.rb +2 -0
- data/lib/spec/expectations.rb +1 -26
- data/lib/spec/expectations/extensions.rb +1 -1
- data/lib/spec/expectations/extensions/kernel.rb +52 -0
- data/lib/spec/expectations/handler.rb +21 -10
- data/lib/spec/matchers/be.rb +3 -3
- data/lib/spec/matchers/be_close.rb +17 -21
- data/lib/spec/matchers/be_instance_of.rb +7 -26
- data/lib/spec/matchers/be_kind_of.rb +7 -26
- data/lib/spec/matchers/dsl.rb +9 -4
- data/lib/spec/matchers/eql.rb +24 -25
- data/lib/spec/matchers/equal.rb +25 -25
- data/lib/spec/matchers/exist.rb +5 -21
- data/lib/spec/matchers/include.rb +22 -44
- data/lib/spec/matchers/match.rb +5 -25
- data/lib/spec/matchers/match_array.rb +8 -4
- data/lib/spec/matchers/matcher.rb +13 -2
- data/lib/spec/matchers/pretty.rb +1 -0
- data/lib/spec/matchers/simple_matcher.rb +2 -2
- data/lib/spec/mocks/mock.rb +10 -10
- data/lib/spec/mocks/spec_methods.rb +1 -1
- data/lib/spec/runner/configuration.rb +53 -42
- data/lib/spec/{expectations → runner}/differs/default.rb +0 -0
- data/lib/spec/{expectations → runner}/differs/load-diff-lcs.rb +0 -0
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/example_group_runner.rb +0 -12
- data/lib/spec/runner/formatter/base_formatter.rb +77 -30
- data/lib/spec/runner/formatter/base_text_formatter.rb +19 -24
- data/lib/spec/runner/formatter/failing_example_groups_formatter.rb +1 -1
- data/lib/spec/runner/formatter/html_formatter.rb +4 -6
- data/lib/spec/runner/formatter/nested_text_formatter.rb +2 -2
- data/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
- data/lib/spec/runner/formatter/profile_formatter.rb +0 -4
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +4 -5
- data/lib/spec/runner/formatter/silent_formatter.rb +10 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +2 -2
- data/lib/spec/runner/option_parser.rb +14 -7
- data/lib/spec/runner/options.rb +17 -7
- data/lib/spec/runner/reporter.rb +69 -64
- data/lib/spec/version.rb +1 -1
- data/spec/spec/dsl/main_spec.rb +7 -0
- data/spec/spec/example/example_group_methods_spec.rb +16 -32
- data/spec/spec/example/example_group_proxy_spec.rb +25 -5
- data/spec/spec/example/example_group_spec.rb +2 -2
- data/spec/spec/example/example_methods_spec.rb +19 -24
- data/spec/spec/example/example_proxy_spec.rb +11 -1
- data/spec/spec/example/pending_module_spec.rb +2 -108
- data/spec/spec/example/predicate_matcher_spec.rb +23 -3
- data/spec/spec/expectations/extensions/object_spec.rb +9 -9
- data/spec/spec/expectations/fail_with_spec.rb +13 -13
- data/spec/spec/expectations/handler_spec.rb +44 -15
- data/spec/spec/matchers/be_close_spec.rb +9 -0
- data/spec/spec/matchers/be_instance_of_spec.rb +6 -4
- data/spec/spec/matchers/be_kind_of_spec.rb +5 -3
- data/spec/spec/matchers/be_spec.rb +1 -5
- data/spec/spec/matchers/compatibility_spec.rb +1 -1
- data/spec/spec/matchers/dsl_spec.rb +10 -1
- data/spec/spec/matchers/eql_spec.rb +8 -4
- data/spec/spec/matchers/equal_spec.rb +8 -4
- data/spec/spec/matchers/exist_spec.rb +1 -1
- data/spec/spec/matchers/include_spec.rb +1 -1
- data/spec/spec/matchers/match_array_spec.rb +26 -1
- data/spec/spec/matchers/match_spec.rb +2 -2
- data/spec/spec/matchers/matcher_methods_spec.rb +0 -3
- data/spec/spec/matchers/matcher_spec.rb +53 -0
- data/spec/spec/matchers/operator_matcher_spec.rb +1 -1
- data/spec/spec/mocks/mock_spec.rb +6 -0
- data/spec/spec/runner/configuration_spec.rb +11 -1
- data/spec/spec/runner/drb_command_line_spec.rb +13 -1
- data/spec/spec/runner/example_group_runner_spec.rb +0 -7
- data/spec/spec/runner/formatter/base_formatter_spec.rb +19 -12
- data/spec/spec/runner/formatter/base_text_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +4 -4
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +2 -2
- data/spec/spec/runner/formatter/html_formatted-1.8.6.html +31 -34
- data/spec/spec/runner/formatter/html_formatter_spec.rb +20 -0
- data/spec/spec/runner/formatter/nested_text_formatter_spec.rb +20 -20
- data/spec/spec/runner/formatter/profile_formatter_spec.rb +22 -3
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +24 -3
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +6 -6
- data/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +25 -28
- data/spec/spec/runner/formatter/text_mate_formatter_spec.rb +2 -2
- data/spec/spec/runner/option_parser_spec.rb +108 -40
- data/spec/spec/runner/reporter_spec.rb +16 -17
- data/spec/spec_helper.rb +4 -1
- metadata +20 -18
- data/features/example_groups/output.feature +0 -20
- data/features/step_definitions/running_rspec.rb +0 -69
- data/lib/spec/expectations/extensions/object.rb +0 -63
- data/resources/spec/example_group_with_should_methods.rb +0 -12
- data/resources/spec/simple_spec.rb +0 -8
- data/resources/test/spec_and_test_together.rb +0 -56
- data/resources/test/spec_including_test_but_not_unit.rb +0 -11
- data/resources/test/test_case_with_should_methods.rb +0 -29
@@ -1,28 +1,5 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
|
-
class BeKindOf
|
4
|
-
def initialize(expected)
|
5
|
-
@expected = expected
|
6
|
-
end
|
7
|
-
|
8
|
-
def matches?(actual)
|
9
|
-
@actual = actual
|
10
|
-
@actual.kind_of?(@expected)
|
11
|
-
end
|
12
|
-
|
13
|
-
def description
|
14
|
-
"be a kind of #{@expected}"
|
15
|
-
end
|
16
|
-
|
17
|
-
def failure_message_for_should
|
18
|
-
"expected kind of #{@expected}, got #{@actual.inspect}"
|
19
|
-
end
|
20
|
-
|
21
|
-
def failure_message_for_should_not
|
22
|
-
"expected #{@actual.inspect} not to be a kind of #{@expected}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
3
|
# :call-seq:
|
27
4
|
# should be_kind_of(expected)
|
28
5
|
# should be_a_kind_of(expected)
|
@@ -36,10 +13,14 @@ module Spec
|
|
36
13
|
# 5.should be_kind_of(Fixnum)
|
37
14
|
# 5.should be_kind_of(Numeric)
|
38
15
|
# 5.should_not be_kind_of(Float)
|
39
|
-
def
|
40
|
-
|
16
|
+
def be_a_kind_of(expected)
|
17
|
+
Matcher.new :be_a_kind_of, expected do |expected|
|
18
|
+
match do |actual|
|
19
|
+
actual.kind_of?(expected)
|
20
|
+
end
|
21
|
+
end
|
41
22
|
end
|
42
23
|
|
43
|
-
alias_method :
|
24
|
+
alias_method :be_kind_of, :be_a_kind_of
|
44
25
|
end
|
45
26
|
end
|
data/lib/spec/matchers/dsl.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
3
|
module DSL
|
4
|
-
|
4
|
+
# See Spec::Matchers
|
5
|
+
def define(name, &declarations)
|
5
6
|
define_method name do |*expected|
|
6
|
-
Spec::Matchers::Matcher.new name, *expected, &
|
7
|
+
Spec::Matchers::Matcher.new name, *expected, &declarations
|
7
8
|
end
|
8
9
|
end
|
10
|
+
|
11
|
+
# Deprecated - use define
|
12
|
+
def create(name, &declarations)
|
13
|
+
Spec.deprecate("Spec::Matchers.create","Spec::Matchers.define")
|
14
|
+
define(name, &declarations)
|
15
|
+
end
|
9
16
|
end
|
10
17
|
end
|
11
18
|
end
|
12
19
|
|
13
20
|
Spec::Matchers.extend Spec::Matchers::DSL
|
14
|
-
|
15
|
-
|
data/lib/spec/matchers/eql.rb
CHANGED
@@ -1,29 +1,5 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
|
-
class Eql
|
4
|
-
def initialize(expected)
|
5
|
-
@expected = expected
|
6
|
-
end
|
7
|
-
|
8
|
-
def matches?(actual)
|
9
|
-
@actual = actual
|
10
|
-
@actual.eql?(@expected)
|
11
|
-
end
|
12
|
-
|
13
|
-
def failure_message_for_should
|
14
|
-
return "expected #{@expected.inspect}, got #{@actual.inspect} (using .eql?)", @expected, @actual
|
15
|
-
end
|
16
|
-
|
17
|
-
def failure_message_for_should_not
|
18
|
-
return "expected #{@actual.inspect} not to equal #{@expected.inspect} (using .eql?)", @expected, @actual
|
19
|
-
end
|
20
|
-
|
21
|
-
def description
|
22
|
-
"eql #{@expected.inspect}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
3
|
# :call-seq:
|
28
4
|
# should eql(expected)
|
29
5
|
# should_not eql(expected)
|
@@ -37,7 +13,30 @@ module Spec
|
|
37
13
|
# 5.should eql(5)
|
38
14
|
# 5.should_not eql(3)
|
39
15
|
def eql(expected)
|
40
|
-
|
16
|
+
Matcher.new :eql, expected do |expected|
|
17
|
+
match do |actual|
|
18
|
+
actual.eql?(expected)
|
19
|
+
end
|
20
|
+
|
21
|
+
failure_message_for_should do |actual|
|
22
|
+
<<-MESSAGE
|
23
|
+
|
24
|
+
expected #{expected.inspect}
|
25
|
+
got #{actual.inspect}
|
26
|
+
|
27
|
+
(compared using eql?)
|
28
|
+
MESSAGE
|
29
|
+
end
|
30
|
+
|
31
|
+
failure_message_for_should_not do |actual|
|
32
|
+
<<-MESSAGE
|
33
|
+
|
34
|
+
expected #{actual.inspect} not to equal #{expected.inspect}
|
35
|
+
|
36
|
+
(compared using eql?)
|
37
|
+
MESSAGE
|
38
|
+
end
|
39
|
+
end
|
41
40
|
end
|
42
41
|
end
|
43
42
|
end
|
data/lib/spec/matchers/equal.rb
CHANGED
@@ -1,29 +1,6 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
|
-
|
4
|
-
class Equal
|
5
|
-
def initialize(expected)
|
6
|
-
@expected = expected
|
7
|
-
end
|
8
|
-
|
9
|
-
def matches?(actual)
|
10
|
-
@actual = actual
|
11
|
-
@actual.equal?(@expected)
|
12
|
-
end
|
13
|
-
|
14
|
-
def failure_message_for_should
|
15
|
-
return "expected #{@expected.inspect}, got #{@actual.inspect} (using .equal?)", @expected, @actual
|
16
|
-
end
|
17
|
-
|
18
|
-
def failure_message_for_should_not
|
19
|
-
return "expected #{@actual.inspect} not to equal #{@expected.inspect} (using .equal?)", @expected, @actual
|
20
|
-
end
|
21
|
-
|
22
|
-
def description
|
23
|
-
"equal #{@expected.inspect}"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
3
|
+
|
27
4
|
# :call-seq:
|
28
5
|
# should equal(expected)
|
29
6
|
# should_not equal(expected)
|
@@ -37,7 +14,30 @@ module Spec
|
|
37
14
|
# 5.should equal(5) #Fixnums are equal
|
38
15
|
# "5".should_not equal("5") #Strings that look the same are not the same object
|
39
16
|
def equal(expected)
|
40
|
-
|
17
|
+
Matcher.new :equal, expected do |expected|
|
18
|
+
match do |actual|
|
19
|
+
actual.equal?(expected)
|
20
|
+
end
|
21
|
+
|
22
|
+
failure_message_for_should do |actual|
|
23
|
+
<<-MESSAGE
|
24
|
+
|
25
|
+
expected #{expected.inspect}
|
26
|
+
got #{actual.inspect}
|
27
|
+
|
28
|
+
(compared using equal?)
|
29
|
+
MESSAGE
|
30
|
+
end
|
31
|
+
|
32
|
+
failure_message_for_should_not do |actual|
|
33
|
+
<<-MESSAGE
|
34
|
+
|
35
|
+
expected #{actual.inspect} not to equal #{expected.inspect}
|
36
|
+
|
37
|
+
(compared using equal?)
|
38
|
+
MESSAGE
|
39
|
+
end
|
40
|
+
end
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
data/lib/spec/matchers/exist.rb
CHANGED
@@ -1,32 +1,16 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
|
-
|
4
|
-
class Exist
|
5
|
-
def matches?(actual)
|
6
|
-
@actual = actual
|
7
|
-
actual.exist?
|
8
|
-
end
|
9
|
-
|
10
|
-
def failure_message_for_should
|
11
|
-
"expected #{@actual.inspect} to exist, but it doesn't."
|
12
|
-
end
|
13
|
-
|
14
|
-
def failure_message_for_should_not
|
15
|
-
"expected #{@actual.inspect} to not exist, but it does."
|
16
|
-
end
|
17
|
-
|
18
|
-
def description
|
19
|
-
"exists"
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
3
|
# :call-seq:
|
24
4
|
# should exist
|
25
5
|
# should_not exist
|
26
6
|
#
|
27
7
|
# Passes if actual.exist?
|
28
8
|
def exist
|
29
|
-
|
9
|
+
Matcher.new :exist do
|
10
|
+
match do |actual|
|
11
|
+
actual.exist?
|
12
|
+
end
|
13
|
+
end
|
30
14
|
end
|
31
15
|
end
|
32
16
|
end
|
@@ -1,48 +1,5 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
|
-
class Include #:nodoc:
|
4
|
-
include Spec::Matchers::Pretty
|
5
|
-
|
6
|
-
def initialize(*expecteds)
|
7
|
-
@expecteds = expecteds
|
8
|
-
end
|
9
|
-
|
10
|
-
def matches?(actual)
|
11
|
-
@actual = actual
|
12
|
-
@expecteds.each do |expected|
|
13
|
-
if actual.is_a?(Hash)
|
14
|
-
if expected.is_a?(Hash)
|
15
|
-
expected.each_pair do |k,v|
|
16
|
-
return false unless actual[k] == v
|
17
|
-
end
|
18
|
-
else
|
19
|
-
return false unless actual.has_key?(expected)
|
20
|
-
end
|
21
|
-
else
|
22
|
-
return false unless actual.include?(expected)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
true
|
26
|
-
end
|
27
|
-
|
28
|
-
def failure_message_for_should
|
29
|
-
_message
|
30
|
-
end
|
31
|
-
|
32
|
-
def failure_message_for_should_not
|
33
|
-
_message("not ")
|
34
|
-
end
|
35
|
-
|
36
|
-
def description
|
37
|
-
"include #{_pretty_print(@expecteds)}"
|
38
|
-
end
|
39
|
-
|
40
|
-
private
|
41
|
-
def _message(maybe_not="")
|
42
|
-
"expected #{@actual.inspect} #{maybe_not}to include #{_pretty_print(@expecteds)}"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
3
|
# :call-seq:
|
47
4
|
# should include(expected)
|
48
5
|
# should_not include(expected)
|
@@ -60,7 +17,28 @@ module Spec
|
|
60
17
|
# "spread".should include("read")
|
61
18
|
# "spread".should_not include("red")
|
62
19
|
def include(*expected)
|
63
|
-
|
20
|
+
Matcher.new :include, *expected do |*expecteds|
|
21
|
+
match do |actual|
|
22
|
+
helper(actual, *expecteds)
|
23
|
+
end
|
24
|
+
|
25
|
+
def helper(actual, *expecteds)
|
26
|
+
expecteds.each do |expected|
|
27
|
+
if actual.is_a?(Hash)
|
28
|
+
if expected.is_a?(Hash)
|
29
|
+
expected.each_pair do |k,v|
|
30
|
+
return false unless actual[k] == v
|
31
|
+
end
|
32
|
+
else
|
33
|
+
return false unless actual.has_key?(expected)
|
34
|
+
end
|
35
|
+
else
|
36
|
+
return false unless actual.include?(expected)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
true
|
40
|
+
end
|
41
|
+
end
|
64
42
|
end
|
65
43
|
end
|
66
44
|
end
|
data/lib/spec/matchers/match.rb
CHANGED
@@ -1,29 +1,5 @@
|
|
1
1
|
module Spec
|
2
2
|
module Matchers
|
3
|
-
class Match
|
4
|
-
def initialize(expected)
|
5
|
-
@expected = expected
|
6
|
-
end
|
7
|
-
|
8
|
-
def matches?(actual)
|
9
|
-
@actual = actual
|
10
|
-
actual =~ @expected
|
11
|
-
end
|
12
|
-
|
13
|
-
def failure_message_for_should
|
14
|
-
return "expected #{@actual.inspect} to match #{@expected.inspect}", @expected, @actual
|
15
|
-
end
|
16
|
-
|
17
|
-
def failure_message_for_should_not
|
18
|
-
return "expected #{@actual.inspect} not to match #{@expected.inspect}", @expected, @actual
|
19
|
-
end
|
20
|
-
|
21
|
-
def description
|
22
|
-
"match #{@expected.inspect}"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
3
|
# :call-seq:
|
28
4
|
# should match(regexp)
|
29
5
|
# should_not match(regexp)
|
@@ -34,7 +10,11 @@ module Spec
|
|
34
10
|
#
|
35
11
|
# email.should match(/^([^\s]+)((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)
|
36
12
|
def match(expected)
|
37
|
-
|
13
|
+
Matcher.new :match, expected do |expected|
|
14
|
+
match do |actual|
|
15
|
+
actual =~ expected
|
16
|
+
end
|
17
|
+
end
|
38
18
|
end
|
39
19
|
end
|
40
20
|
end
|
@@ -16,10 +16,10 @@ module Spec
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def failure_message_for_should
|
19
|
-
message = "expected collection contained: #{@expected.
|
20
|
-
message += "actual collection contained: #{@actual.
|
21
|
-
message += "the missing elements were: #{@missing_items.
|
22
|
-
message += "the extra elements were: #{@extra_items.
|
19
|
+
message = "expected collection contained: #{safe_sort(@expected).inspect}\n"
|
20
|
+
message += "actual collection contained: #{safe_sort(@actual).inspect}\n"
|
21
|
+
message += "the missing elements were: #{safe_sort(@missing_items).inspect}\n" unless @missing_items.empty?
|
22
|
+
message += "the extra elements were: #{safe_sort(@extra_items).inspect}\n" unless @extra_items.empty?
|
23
23
|
message
|
24
24
|
end
|
25
25
|
|
@@ -33,6 +33,10 @@ module Spec
|
|
33
33
|
|
34
34
|
private
|
35
35
|
|
36
|
+
def safe_sort(array)
|
37
|
+
array.all?{|item| item.respond_to?(:<=>)} ? array.sort : array
|
38
|
+
end
|
39
|
+
|
36
40
|
def difference_between_arrays(array_1, array_2)
|
37
41
|
difference = array_1.dup
|
38
42
|
array_2.each do |element|
|
@@ -3,14 +3,17 @@ module Spec
|
|
3
3
|
class Matcher
|
4
4
|
include Spec::Matchers::Pretty
|
5
5
|
|
6
|
+
attr_reader :expected, :actual
|
7
|
+
|
6
8
|
def initialize(name, *expected, &declarations)
|
7
9
|
@name = name
|
8
10
|
@expected = expected
|
9
11
|
@declarations = declarations
|
12
|
+
@diffable = false
|
10
13
|
@messages = {
|
11
14
|
:description => lambda {"#{name_to_sentence}#{expected_to_sentence}"},
|
12
|
-
:failure_message_for_should => lambda {|actual| "expected #{actual} to #{name_to_sentence}#{expected_to_sentence}"},
|
13
|
-
:failure_message_for_should_not => lambda {|actual| "expected #{actual} not to #{name_to_sentence}#{expected_to_sentence}"}
|
15
|
+
:failure_message_for_should => lambda {|actual| "expected #{actual.inspect} to #{name_to_sentence}#{expected_to_sentence}"},
|
16
|
+
:failure_message_for_should_not => lambda {|actual| "expected #{actual.inspect} not to #{name_to_sentence}#{expected_to_sentence}"}
|
14
17
|
}
|
15
18
|
end
|
16
19
|
|
@@ -36,6 +39,14 @@ module Spec
|
|
36
39
|
@match_block = block
|
37
40
|
end
|
38
41
|
|
42
|
+
def diffable?
|
43
|
+
@diffable
|
44
|
+
end
|
45
|
+
|
46
|
+
def diffable
|
47
|
+
@diffable = true
|
48
|
+
end
|
49
|
+
|
39
50
|
private
|
40
51
|
|
41
52
|
def cache_or_call_cached(key, actual=nil, &block)
|
data/lib/spec/matchers/pretty.rb
CHANGED
@@ -23,11 +23,11 @@ module Spec
|
|
23
23
|
@description || explanation
|
24
24
|
end
|
25
25
|
|
26
|
-
def
|
26
|
+
def failure_message_for_should
|
27
27
|
@failure_message || (@description.nil? ? explanation : %[expected #{@description.inspect} but got #{@given.inspect}])
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
30
|
+
def failure_message_for_should_not
|
31
31
|
@negative_failure_message || (@description.nil? ? explanation : %[expected not to get #{@description.inspect}, but got #{@given.inspect}])
|
32
32
|
end
|
33
33
|
|
data/lib/spec/mocks/mock.rb
CHANGED
@@ -21,16 +21,6 @@ module Spec
|
|
21
21
|
other == __mock_proxy
|
22
22
|
end
|
23
23
|
|
24
|
-
def method_missing(sym, *args, &block)
|
25
|
-
__mock_proxy.record_message_received(sym, args, block)
|
26
|
-
begin
|
27
|
-
return self if __mock_proxy.null_object?
|
28
|
-
super(sym, *args, &block)
|
29
|
-
rescue NameError
|
30
|
-
__mock_proxy.raise_unexpected_message_error sym, *args
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
24
|
def inspect
|
35
25
|
"#<#{self.class}:#{sprintf '0x%x', self.object_id} @name=#{@name.inspect}>"
|
36
26
|
end
|
@@ -40,6 +30,16 @@ module Spec
|
|
40
30
|
end
|
41
31
|
|
42
32
|
private
|
33
|
+
|
34
|
+
def method_missing(sym, *args, &block)
|
35
|
+
__mock_proxy.record_message_received(sym, args, block)
|
36
|
+
begin
|
37
|
+
return self if __mock_proxy.null_object?
|
38
|
+
super(sym, *args, &block)
|
39
|
+
rescue NameError
|
40
|
+
__mock_proxy.raise_unexpected_message_error sym, *args
|
41
|
+
end
|
42
|
+
end
|
43
43
|
|
44
44
|
def parse_options(options)
|
45
45
|
options.has_key?(:null_object) ? {:null_object => options.delete(:null_object)} : {}
|