rspec 0.7.5.1 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +60 -1
- data/EXAMPLES.rd +38 -19
- data/MIT-LICENSE +1 -1
- data/README +24 -17
- data/RELEASE-PLAN +117 -0
- data/Rakefile +24 -18
- data/TODO.0.8.0 +5 -0
- data/examples/auto_spec_name_generation_example.rb +18 -0
- data/examples/custom_expectation_matchers.rb +53 -0
- data/examples/dynamic_spec.rb +9 -0
- data/examples/io_processor_spec.rb +2 -2
- data/examples/mocking_example.rb +4 -4
- data/examples/partial_mock_example.rb +2 -2
- data/examples/predicate_example.rb +2 -2
- data/examples/stack_spec.rb +32 -36
- data/examples/stubbing_example.rb +19 -19
- data/examples/test_case_spec.rb +6 -6
- data/lib/spec.rb +3 -0
- data/lib/spec/callback.rb +8 -0
- data/lib/spec/callback/extensions/object.rb +4 -0
- data/lib/spec/deprecated.rb +3 -0
- data/lib/spec/expectations.rb +44 -17
- data/lib/spec/expectations/extensions.rb +1 -2
- data/lib/spec/expectations/extensions/object.rb +78 -130
- data/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
- data/lib/spec/expectations/handler.rb +47 -0
- data/lib/spec/expectations/should/base.rb +32 -29
- data/lib/spec/expectations/should/change.rb +1 -1
- data/lib/spec/expectations/should/have.rb +9 -17
- data/lib/spec/expectations/should/not.rb +54 -56
- data/lib/spec/expectations/should/should.rb +59 -65
- data/lib/spec/expectations/sugar.rb +27 -4
- data/lib/spec/matchers.rb +160 -0
- data/lib/spec/matchers/be.rb +161 -0
- data/lib/spec/matchers/be_close.rb +37 -0
- data/lib/spec/matchers/change.rb +120 -0
- data/lib/spec/matchers/eql.rb +43 -0
- data/lib/spec/matchers/equal.rb +43 -0
- data/lib/spec/matchers/has.rb +44 -0
- data/lib/spec/matchers/have.rb +140 -0
- data/lib/spec/matchers/include.rb +50 -0
- data/lib/spec/matchers/match.rb +41 -0
- data/lib/spec/matchers/raise_error.rb +100 -0
- data/lib/spec/matchers/respond_to.rb +35 -0
- data/lib/spec/matchers/satisfy.rb +47 -0
- data/lib/spec/matchers/throw_symbol.rb +75 -0
- data/lib/spec/mocks.rb +224 -1
- data/lib/spec/mocks/argument_expectation.rb +16 -2
- data/lib/spec/mocks/error_generator.rb +5 -3
- data/lib/spec/mocks/errors.rb +2 -2
- data/lib/spec/mocks/extensions/object.rb +1 -1
- data/lib/spec/mocks/message_expectation.rb +29 -19
- data/lib/spec/mocks/{mock_methods.rb → methods.rb} +5 -5
- data/lib/spec/mocks/mock.rb +2 -2
- data/lib/spec/mocks/mock_handler.rb +81 -68
- data/lib/spec/rake/spectask.rb +7 -12
- data/lib/spec/rake/verify_rcov.rb +1 -1
- data/lib/spec/runner.rb +117 -0
- data/lib/spec/runner/command_line.rb +8 -5
- data/lib/spec/runner/context.rb +13 -37
- data/lib/spec/runner/context_eval.rb +4 -3
- data/lib/spec/runner/context_runner.rb +7 -4
- data/lib/spec/runner/drb_command_line.rb +1 -1
- data/lib/spec/runner/execution_context.rb +3 -11
- data/lib/spec/runner/extensions/kernel.rb +7 -5
- data/lib/spec/runner/extensions/object.rb +4 -1
- data/lib/spec/runner/formatter/base_text_formatter.rb +11 -3
- data/lib/spec/runner/formatter/html_formatter.rb +21 -10
- data/lib/spec/runner/heckle_runner.rb +24 -8
- data/lib/spec/runner/heckle_runner_win.rb +10 -0
- data/lib/spec/runner/option_parser.rb +58 -13
- data/lib/spec/runner/spec_matcher.rb +22 -29
- data/lib/spec/runner/spec_parser.rb +1 -0
- data/lib/spec/runner/specification.rb +36 -22
- data/lib/spec/translator.rb +87 -0
- data/lib/spec/version.rb +16 -7
- data/spec/spec/callback/callback_container_spec.rb +27 -0
- data/spec/spec/callback/module_spec.rb +37 -0
- data/spec/spec/callback/object_spec.rb +90 -0
- data/spec/spec/callback/object_with_class_callback_spec.rb +19 -0
- data/spec/spec/expectations/differs/default_spec.rb +107 -0
- data/spec/spec/expectations/extensions/object_spec.rb +46 -0
- data/spec/spec/expectations/fail_with_spec.rb +71 -0
- data/spec/spec/expectations/should/should_==_spec.rb +19 -0
- data/spec/spec/expectations/should/should_=~_spec.rb +13 -0
- data/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +21 -0
- data/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +30 -0
- data/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +81 -0
- data/spec/spec/expectations/should/should_be_close_spec.rb +18 -0
- data/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +44 -0
- data/spec/spec/expectations/should/should_be_false_spec.rb +39 -0
- data/spec/spec/expectations/should/should_be_spec.rb +11 -0
- data/spec/spec/expectations/should/should_be_true_spec.rb +27 -0
- data/spec/spec/expectations/should/should_change_spec.rb +184 -0
- data/spec/spec/expectations/should/should_eql_spec.rb +11 -0
- data/spec/spec/expectations/should/should_equal_spec.rb +11 -0
- data/spec/spec/expectations/should/should_have_at_least_spec.rb +53 -0
- data/spec/spec/expectations/should/should_have_at_most_spec.rb +45 -0
- data/spec/spec/expectations/should/should_have_key_spec.rb +21 -0
- data/spec/spec/expectations/should/should_have_spec.rb +64 -0
- data/spec/spec/expectations/should/should_include_spec.rb +59 -0
- data/spec/spec/expectations/should/should_match_spec.rb +25 -0
- data/spec/spec/expectations/should/should_not_==_spec.rb +15 -0
- data/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +21 -0
- data/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +68 -0
- data/spec/spec/expectations/should/should_not_be_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_change_spec.rb +24 -0
- data/spec/spec/expectations/should/should_not_eql_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_equal_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_have_key_spec.rb +15 -0
- data/spec/spec/expectations/should/should_not_include_spec.rb +58 -0
- data/spec/spec/expectations/should/should_not_match_spec.rb +11 -0
- data/spec/spec/expectations/should/should_not_raise_spec.rb +75 -0
- data/spec/spec/expectations/should/should_not_respond_to_spec.rb +15 -0
- data/spec/spec/expectations/should/should_not_throw_spec.rb +35 -0
- data/spec/spec/expectations/should/should_raise_spec.rb +66 -0
- data/spec/spec/expectations/should/should_respond_to_spec.rb +15 -0
- data/spec/spec/expectations/should/should_satisfy_spec.rb +35 -0
- data/spec/spec/expectations/should/should_throw_spec.rb +27 -0
- data/spec/spec/matchers/be_close_spec.rb +33 -0
- data/spec/spec/matchers/be_spec.rb +182 -0
- data/spec/spec/matchers/change_spec.rb +232 -0
- data/spec/spec/matchers/description_generation_spec.rb +147 -0
- data/spec/spec/matchers/eql_spec.rb +41 -0
- data/spec/spec/matchers/equal_spec.rb +41 -0
- data/spec/spec/matchers/handler_spec.rb +75 -0
- data/spec/spec/matchers/has_spec.rb +37 -0
- data/spec/spec/matchers/have_spec.rb +259 -0
- data/spec/spec/matchers/include_spec.rb +33 -0
- data/spec/spec/matchers/match_spec.rb +37 -0
- data/spec/spec/matchers/matcher_methods_spec.rb +85 -0
- data/spec/spec/matchers/raise_error_spec.rb +147 -0
- data/spec/spec/matchers/respond_to_spec.rb +30 -0
- data/spec/spec/matchers/satisfy_spec.rb +36 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +59 -0
- data/spec/spec/mocks/any_number_of_times_spec.rb +34 -0
- data/spec/spec/mocks/at_least_spec.rb +97 -0
- data/spec/spec/mocks/at_most_spec.rb +97 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
- data/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
- data/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
- data/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +74 -0
- data/spec/spec/mocks/mock_ordering_spec.rb +80 -0
- data/spec/spec/mocks/mock_spec.rb +407 -0
- data/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
- data/spec/spec/mocks/null_object_mock_spec.rb +40 -0
- data/spec/spec/mocks/once_counts_spec.rb +56 -0
- data/spec/spec/mocks/options_hash_spec.rb +31 -0
- data/spec/spec/mocks/partial_mock_spec.rb +52 -0
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +64 -0
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +92 -0
- data/spec/spec/mocks/precise_counts_spec.rb +56 -0
- data/spec/spec/mocks/record_messages_spec.rb +26 -0
- data/spec/spec/mocks/stub_spec.rb +159 -0
- data/spec/spec/mocks/twice_counts_spec.rb +67 -0
- data/spec/spec/runner/command_line_spec.rb +32 -0
- data/spec/spec/runner/context_matching_spec.rb +28 -0
- data/spec/spec/runner/context_runner_spec.rb +100 -0
- data/spec/spec/runner/context_spec.rb +405 -0
- data/spec/spec/runner/drb_command_line_spec.rb +74 -0
- data/spec/spec/runner/execution_context_spec.rb +52 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +40 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +36 -0
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +78 -0
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +18 -0
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +41 -0
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +46 -0
- data/spec/spec/runner/heckle_runner_spec.rb +63 -0
- data/spec/spec/runner/heckler_spec.rb +14 -0
- data/spec/spec/runner/kernel_ext_spec.rb +16 -0
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
- data/spec/spec/runner/object_ext_spec.rb +11 -0
- data/spec/spec/runner/option_parser_spec.rb +269 -0
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +47 -0
- data/spec/spec/runner/reporter_spec.rb +126 -0
- data/spec/spec/runner/spec_matcher_spec.rb +107 -0
- data/spec/spec/runner/spec_name_generation_spec.rb +102 -0
- data/spec/spec/runner/spec_parser_spec.rb +37 -0
- data/spec/spec/runner/specification_class_spec.rb +72 -0
- data/spec/spec/runner/specification_instance_spec.rb +160 -0
- data/spec/spec/runner/specification_should_raise_spec.rb +136 -0
- data/spec/spec/spec_classes.rb +102 -0
- data/spec/spec/translator_spec.rb +79 -0
- data/spec/spec_helper.rb +35 -0
- metadata +141 -9
- data/bin/drbspec +0 -3
- data/lib/spec/expectations/diff.rb +0 -28
- data/lib/spec/expectations/extensions/numeric.rb +0 -19
- data/lib/spec/expectations/extensions/string.rb +0 -22
- data/lib/spec/expectations/message_builder.rb +0 -13
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_include" do
|
4
|
+
setup do
|
5
|
+
@dummy = "dummy"
|
6
|
+
@equal_dummy = "dummy"
|
7
|
+
@another_dummy = "another_dummy"
|
8
|
+
@nil_var = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
specify "should fail when array inclusion is missing" do
|
12
|
+
lambda do
|
13
|
+
[1, 2, 3].should_include(5)
|
14
|
+
end.should_fail
|
15
|
+
end
|
16
|
+
|
17
|
+
specify "should fail when enumerable inclusion is missing" do
|
18
|
+
lambda do
|
19
|
+
IO.constants.should_include("BLAH")
|
20
|
+
end.should_fail
|
21
|
+
end
|
22
|
+
|
23
|
+
specify "should fail when hash inclusion is missing" do
|
24
|
+
lambda do
|
25
|
+
{"a" => 1}.should_include("b")
|
26
|
+
end.should_fail
|
27
|
+
end
|
28
|
+
|
29
|
+
specify "should fail when string inclusion is missing" do
|
30
|
+
lambda do
|
31
|
+
@dummy.should_include("abc")
|
32
|
+
end.should_fail
|
33
|
+
end
|
34
|
+
|
35
|
+
specify "should pass when array inclusion is present" do
|
36
|
+
lambda do
|
37
|
+
[1, 2, 3].should_include(2)
|
38
|
+
end.should_pass
|
39
|
+
end
|
40
|
+
|
41
|
+
specify "should pass when enumerable inclusion is present" do
|
42
|
+
lambda do
|
43
|
+
IO.constants.should_include("SEEK_SET")
|
44
|
+
end.should_pass
|
45
|
+
end
|
46
|
+
|
47
|
+
specify "should pass when hash inclusion is present" do
|
48
|
+
lambda do
|
49
|
+
{"a" => 1}.should_include("a")
|
50
|
+
end.should_pass
|
51
|
+
end
|
52
|
+
|
53
|
+
specify "should pass when string inclusion is present" do
|
54
|
+
lambda do
|
55
|
+
@dummy.should_include("mm")
|
56
|
+
end.should_pass
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_match" do
|
4
|
+
specify "should pass when objects match" do
|
5
|
+
"hi aslak".should_match(/aslak/)
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail objects do not match" do
|
9
|
+
lambda do
|
10
|
+
"hi aslak".should_match(/steve/)
|
11
|
+
end.should_fail
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "should_not_match" do
|
16
|
+
specify "should fail when objects match" do
|
17
|
+
lambda do
|
18
|
+
"hi aslak".should_not_match(/aslak/)
|
19
|
+
end.should_fail
|
20
|
+
end
|
21
|
+
|
22
|
+
specify "should pass objects do not match" do
|
23
|
+
"hi aslak".should_not_match(/steve/)
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not ==" do
|
4
|
+
specify "should pass objects are not ==" do
|
5
|
+
lambda do
|
6
|
+
"apple".should_not == "cadillac"
|
7
|
+
end.should_pass
|
8
|
+
end
|
9
|
+
|
10
|
+
specify "should fail when objects are ==" do
|
11
|
+
lambda do
|
12
|
+
"apple".should_not == "apple"
|
13
|
+
end.should_fail_with "expected not == \"apple\", got \"apple\""
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_be_a_kind_of" do
|
4
|
+
specify "should fail when target is of specified class" do
|
5
|
+
lambda do
|
6
|
+
5.should_not_be_a_kind_of(Fixnum)
|
7
|
+
end.should_fail
|
8
|
+
end
|
9
|
+
|
10
|
+
specify "should fail when target is of subclass of specified class" do
|
11
|
+
lambda do
|
12
|
+
5.should_not_be_a_kind_of(Integer)
|
13
|
+
end.should_fail
|
14
|
+
end
|
15
|
+
|
16
|
+
specify "should pass when target is not specified class" do
|
17
|
+
lambda do
|
18
|
+
5.should_not_be_a_kind_of(String)
|
19
|
+
end.should_not_raise
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_be_an_instance_of" do
|
4
|
+
specify "should fail when target is of specified class" do
|
5
|
+
lambda { "hello".should_not_be_an_instance_of(String) }.should_fail
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should pass when target is not of specified class" do
|
9
|
+
[].should_not_be_an_instance_of(String)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
module Spec
|
4
|
+
module Expectations
|
5
|
+
module Helper
|
6
|
+
context "should_not_be_arbitrary_predicate" do
|
7
|
+
specify "should fail when method returns something other than true false or nil" do
|
8
|
+
mock=HandCodedMock.new(5)
|
9
|
+
lambda do
|
10
|
+
mock.should_not_be_funny
|
11
|
+
end.should_fail
|
12
|
+
mock.__verify
|
13
|
+
end
|
14
|
+
|
15
|
+
specify "should fail when predicate accepts args and returns true" do
|
16
|
+
mock=HandCodedMock.new(true)
|
17
|
+
lambda do
|
18
|
+
mock.should_not_be_hungry(1, 2, 3)
|
19
|
+
end.should_fail
|
20
|
+
mock.__verify
|
21
|
+
end
|
22
|
+
|
23
|
+
specify "should fail when predicate returns true" do
|
24
|
+
mock=HandCodedMock.new(true)
|
25
|
+
lambda do
|
26
|
+
mock.should_not_be_funny
|
27
|
+
end.should_fail
|
28
|
+
mock.__verify
|
29
|
+
end
|
30
|
+
|
31
|
+
specify "should pass when predicate accepts args and returns false" do
|
32
|
+
mock=HandCodedMock.new(false)
|
33
|
+
lambda do
|
34
|
+
mock.should_not_be_hungry(1, 2, 3)
|
35
|
+
end.should_not_raise
|
36
|
+
mock.__verify
|
37
|
+
end
|
38
|
+
|
39
|
+
specify "should pass when predicate returns false" do
|
40
|
+
mock=HandCodedMock.new(false)
|
41
|
+
mock.should_not_be_funny
|
42
|
+
mock.__verify
|
43
|
+
end
|
44
|
+
|
45
|
+
specify "should pass when predicate returns nil" do
|
46
|
+
mock=HandCodedMock.new(nil)
|
47
|
+
mock.should_not_be_funny
|
48
|
+
mock.__verify
|
49
|
+
end
|
50
|
+
|
51
|
+
specify "should raise NoMethodError when target does not respond to predicate" do
|
52
|
+
lambda do
|
53
|
+
5.should_not_be_funny
|
54
|
+
end.should_raise(NameError)
|
55
|
+
end
|
56
|
+
|
57
|
+
specify "should support multi word predicates with should" do
|
58
|
+
HandCodedMock.new(false).should_not_multi_word_predicate
|
59
|
+
end
|
60
|
+
|
61
|
+
specify "should support multi word predicates with should be" do
|
62
|
+
HandCodedMock.new(false).should_not_be_multi_word_predicate
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_be" do
|
4
|
+
specify "should pass when objects are not the same instance" do
|
5
|
+
"apple".should_not_be("apple")
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail when objects are the same instance" do
|
9
|
+
lambda { :apple.should_not_be(:apple) }.should_fail
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
class SomethingExpected
|
4
|
+
attr_accessor :some_value
|
5
|
+
end
|
6
|
+
|
7
|
+
context "should_not_change" do
|
8
|
+
setup do
|
9
|
+
@instance = SomethingExpected.new
|
10
|
+
@instance.some_value = 5
|
11
|
+
end
|
12
|
+
|
13
|
+
specify "should not raise exception when the target is not modified by the block" do
|
14
|
+
lambda do
|
15
|
+
lambda {nil}.should_not_change(@instance, :some_value)
|
16
|
+
end.should_not_raise
|
17
|
+
end
|
18
|
+
|
19
|
+
specify "should raise exception when the target is modified by the block" do
|
20
|
+
lambda do
|
21
|
+
lambda {@instance.some_value = 6}.should_not_change(@instance, :some_value)
|
22
|
+
end.should_fail_with "some_value should not have changed, but did change from 5 to 6"
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_eql" do
|
4
|
+
specify "should pass when objects are not equal (by value)" do
|
5
|
+
"apples".should_not_eql("cadillacs")
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail when objects are equal (by value)" do
|
9
|
+
lambda { "apple".should_not_eql("apple") }.should_fail_with "expected \"apple\" not to equal \"apple\" (using .eql?)"
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_equal" do
|
4
|
+
specify "should pass when objects are not the same instance" do
|
5
|
+
"apple".should_not_equal("apple")
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should fail when objects are the same instance" do
|
9
|
+
lambda { :apple.should_not_equal(:apple) }.should_fail_with "expected :apple not to equal :apple (using .equal?)"
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_have_key" do
|
4
|
+
specify "should pass when key is not present" do
|
5
|
+
lambda do
|
6
|
+
{"a" => 1}.should_not_have_key("b")
|
7
|
+
end.should_not_raise
|
8
|
+
end
|
9
|
+
|
10
|
+
specify "should fail when key is present" do
|
11
|
+
lambda do
|
12
|
+
{"a" => 1}.should_not_have_key("a")
|
13
|
+
end.should_fail_with('expected #has_key?("a") to return false, got true')
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_include" do
|
4
|
+
setup do
|
5
|
+
@dummy = "dummy"
|
6
|
+
@equal_dummy = "dummy"
|
7
|
+
@another_dummy = "another_dummy"
|
8
|
+
@nil_var = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
specify "should fail when array inclusion is present" do
|
12
|
+
lambda do
|
13
|
+
[1, 2, 3].should_not_include(2)
|
14
|
+
end.should_fail
|
15
|
+
end
|
16
|
+
|
17
|
+
specify "should fail when enumerable inclusion is missing" do
|
18
|
+
lambda do
|
19
|
+
IO.constants.should_not_include("SEEK_SET")
|
20
|
+
end.should_fail
|
21
|
+
end
|
22
|
+
|
23
|
+
specify "should fail when hash inclusion is present" do
|
24
|
+
lambda do
|
25
|
+
{"a" => 1}.should_not_include("a")
|
26
|
+
end.should_fail
|
27
|
+
end
|
28
|
+
|
29
|
+
specify "should fail when string inclusion is present" do
|
30
|
+
lambda do
|
31
|
+
@dummy.should_not_include("mm")
|
32
|
+
end.should_fail
|
33
|
+
end
|
34
|
+
|
35
|
+
specify "should pass when array inclusion is missing" do
|
36
|
+
lambda do
|
37
|
+
[1, 2, 3].should_not_include(5)
|
38
|
+
end.should_pass
|
39
|
+
end
|
40
|
+
|
41
|
+
specify "should pass when enumerable inclusion is present" do
|
42
|
+
lambda do
|
43
|
+
IO.constants.should_not_include("BLAH")
|
44
|
+
end.should_pass
|
45
|
+
end
|
46
|
+
|
47
|
+
specify "should pass when hash inclusion is missing" do
|
48
|
+
lambda do
|
49
|
+
{"a" => 1}.should_not_include("b")
|
50
|
+
end.should_pass
|
51
|
+
end
|
52
|
+
|
53
|
+
specify "should pass when string inclusion is missing" do
|
54
|
+
lambda do
|
55
|
+
@dummy.should_not_include("abc")
|
56
|
+
end.should_pass
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_match" do
|
4
|
+
specify "should not raise when objects do not match" do
|
5
|
+
"hi aslak".should_not_match(/steve/)
|
6
|
+
end
|
7
|
+
|
8
|
+
specify "should raise when objects match" do
|
9
|
+
lambda { "hi aslak".should_not_match(/aslak/) }.should_fail
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_raise" do
|
4
|
+
specify "should fail when specific exception is raised" do
|
5
|
+
lambda {
|
6
|
+
lambda do
|
7
|
+
"".nonexistent_method
|
8
|
+
end.should_not_raise(NoMethodError)
|
9
|
+
}.should_fail_with /expected no NoMethodError, got #<NoMethodError: undefined method/
|
10
|
+
end
|
11
|
+
|
12
|
+
specify "should fail when exact exception is raised with message" do
|
13
|
+
lambda do
|
14
|
+
lambda do
|
15
|
+
raise(StandardError.new("abc"))
|
16
|
+
end.should_not_raise(StandardError, "abc")
|
17
|
+
end.should_fail_with "expected no StandardError with \"abc\", got #<StandardError: abc>"
|
18
|
+
end
|
19
|
+
|
20
|
+
specify "should fail when exact exception is raised with message matching regexp" do
|
21
|
+
lambda do
|
22
|
+
lambda do
|
23
|
+
raise(StandardError.new("abc"))
|
24
|
+
end.should_not_raise(StandardError, /^a.c$/)
|
25
|
+
end.should_fail_with "expected no StandardError with message matching /^a.c$/, got #<StandardError: abc>"
|
26
|
+
end
|
27
|
+
|
28
|
+
specify "should include actual error in failure message" do
|
29
|
+
lambda {
|
30
|
+
lambda {
|
31
|
+
"".nonexistent_method
|
32
|
+
}.should_not_raise(Exception)
|
33
|
+
}.should_fail_with /expected no Exception, got #<NoMethodError: undefined method/
|
34
|
+
end
|
35
|
+
|
36
|
+
specify "should pass when exact exception is raised with wrong message" do
|
37
|
+
lambda do
|
38
|
+
lambda do
|
39
|
+
raise(StandardError.new("abc"))
|
40
|
+
end.should_not_raise(StandardError, "xyz")
|
41
|
+
end.should_pass
|
42
|
+
end
|
43
|
+
|
44
|
+
specify "should pass when exact exception is raised with message not matching regexp" do
|
45
|
+
lambda do
|
46
|
+
lambda do
|
47
|
+
raise(StandardError.new("abc"))
|
48
|
+
end.should_not_raise(StandardError, /xyz/)
|
49
|
+
end.should_pass
|
50
|
+
end
|
51
|
+
|
52
|
+
specify "should pass when no exception is raised" do
|
53
|
+
lambda do
|
54
|
+
lambda do
|
55
|
+
"".to_s
|
56
|
+
end.should_not_raise(NoMethodError)
|
57
|
+
end.should_pass
|
58
|
+
end
|
59
|
+
|
60
|
+
specify "should pass when other exception is raised" do
|
61
|
+
lambda do
|
62
|
+
lambda do
|
63
|
+
"".nonexistent_method
|
64
|
+
end.should_not_raise(SyntaxError)
|
65
|
+
end.should_pass
|
66
|
+
end
|
67
|
+
|
68
|
+
specify "without exception should pass when no exception is raised" do
|
69
|
+
lambda do
|
70
|
+
lambda do
|
71
|
+
"".to_s
|
72
|
+
end.should_not_raise
|
73
|
+
end.should_pass
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../../../spec_helper.rb'
|
2
|
+
|
3
|
+
context "should_not_respond_to" do
|
4
|
+
specify "should fail when target responds to" do
|
5
|
+
lambda do
|
6
|
+
"".should_not_respond_to(:length)
|
7
|
+
end.should_fail
|
8
|
+
end
|
9
|
+
|
10
|
+
specify "should pass when target doesnt respond to" do
|
11
|
+
lambda do
|
12
|
+
"".should_not_respond_to(:connect)
|
13
|
+
end.should_not_raise
|
14
|
+
end
|
15
|
+
end
|