rspec 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +28 -3
- data/EXAMPLES.rd +2 -16
- data/README +5 -2
- data/Rakefile +8 -4
- data/bin/spec +1 -0
- data/examples/custom_formatter.rb +2 -1
- data/examples/helper_method_spec.rb +12 -0
- data/examples/{mocking_spec.rb → mocking_example.rb} +0 -0
- data/examples/{bdd_framework_spec.rb → predicate_example.rb} +0 -0
- data/examples/stubbing_example.rb +28 -0
- data/lib/spec.rb +2 -1
- data/lib/spec/expectations.rb +7 -0
- data/lib/spec/expectations/diff.rb +56 -0
- data/lib/spec/expectations/exceptions.rb +6 -0
- data/lib/spec/expectations/expectations.rb +19 -0
- data/lib/spec/expectations/have_helper.rb +41 -0
- data/lib/spec/expectations/helper.rb +4 -0
- data/lib/spec/expectations/should_base.rb +52 -0
- data/lib/spec/expectations/should_helper.rb +93 -0
- data/lib/spec/expectations/should_negator.rb +71 -0
- data/lib/spec/{api → expectations}/sugar.rb +8 -8
- data/lib/spec/mocks.rb +5 -0
- data/lib/spec/{api/mocks → mocks}/argument_expectation.rb +1 -1
- data/lib/spec/{api → mocks}/exceptions.rb +3 -5
- data/lib/spec/{api/mocks → mocks}/message_expectation.rb +15 -9
- data/lib/spec/{api/mocks → mocks}/mock.rb +44 -26
- data/lib/spec/{api/mocks → mocks}/order_group.rb +1 -1
- data/lib/spec/runner/backtrace_tweaker.rb +4 -1
- data/lib/spec/runner/execution_context.rb +13 -4
- data/lib/spec/runner/formatter/base_text_formatter.rb +26 -13
- data/lib/spec/runner/formatter/html_formatter.rb +1 -1
- data/lib/spec/runner/option_parser.rb +6 -2
- data/lib/spec/runner/specification.rb +2 -2
- data/lib/spec/test_to_spec/ruby2ruby.rb +1 -1
- data/lib/spec/version.rb +1 -1
- data/test/spec/expectations/arbitrary_operator_test.rb +55 -0
- data/test/spec/expectations/arbitrary_predicate_test.rb +163 -0
- data/test/spec/{api/helper → expectations}/containment_test.rb +2 -2
- data/test/spec/expectations/diff_test.rb +62 -0
- data/test/spec/{api/helper → expectations}/identity_test.rb +2 -2
- data/test/spec/{api/helper → expectations}/object_equality_test.rb +2 -2
- data/test/spec/{api/helper → expectations}/raising_test.rb +5 -5
- data/test/spec/{api/helper → expectations}/regex_matching_test.rb +6 -6
- data/test/spec/{api/helper → expectations}/should_have_test.rb +11 -2
- data/test/spec/{api/helper → expectations}/should_satisfy_test.rb +2 -4
- data/test/spec/{api → expectations}/sugar_test.rb +8 -8
- data/test/spec/expectations/supported_symbols_test.rb +33 -0
- data/test/spec/{api/helper → expectations}/throwing_test.rb +2 -2
- data/test/spec/{api/helper → expectations}/true_false_special_case_test.rb +2 -2
- data/test/spec/{api/helper → expectations}/typing_test.rb +2 -2
- data/test/spec/{api/mocks → mocks}/mock_arg_constraints_test.rb +4 -4
- data/test/spec/{api/mocks → mocks}/mock_counts_test.rb +2 -2
- data/test/spec/{api/mocks → mocks}/mock_ordering_test.rb +2 -2
- data/test/spec/{api/mocks → mocks}/mock_test.rb +22 -7
- data/test/spec/{api/mocks → mocks}/null_object_test.rb +8 -2
- data/test/spec/runner/backtrace_tweaker_test.rb +21 -19
- data/test/spec/runner/context_matching_test.rb +2 -2
- data/test/spec/runner/context_runner_test.rb +6 -6
- data/test/spec/runner/context_test.rb +1 -1
- data/test/spec/runner/execution_context_test.rb +22 -5
- data/test/spec/runner/formatter/failure_dump_test.rb +7 -7
- data/test/spec/runner/option_parser_test.rb +20 -0
- data/test/spec/runner/reporter_test.rb +3 -3
- data/test/spec/runner/specification_test.rb +3 -3
- data/test/spec/test_to_spec/sexp_transformer_assertion_test.rb +4 -4
- data/test/spec/test_to_spec/sexp_transformer_test.rb +1 -1
- data/test/spec/test_to_spec/testfiles/test_unit_api_test.rb +2 -2
- data/test/test_classes.rb +21 -1
- data/test/test_helper.rb +1 -1
- data/vendor/selenium/README.txt +23 -0
- data/vendor/selenium/find_rspecs_home_page.rb +23 -0
- data/vendor/selenium/rspec_selenium.rb +33 -0
- data/vendor/watir/README.txt +32 -0
- data/vendor/watir/find_rspecs_home_page.rb +21 -0
- data/vendor/watir/find_rspecs_home_page.txt +15 -0
- data/vendor/watir/rspec_watir.rb +45 -0
- metadata +52 -41
- data/examples/airport_spec.rb +0 -33
- data/examples/custom_method_spec.rb +0 -24
- data/examples/sugar_spec.rb +0 -14
- data/lib/spec/api.rb +0 -8
- data/lib/spec/api/expectations.rb +0 -17
- data/lib/spec/api/helper.rb +0 -4
- data/lib/spec/api/helper/diff.rb +0 -54
- data/lib/spec/api/helper/have_helper.rb +0 -40
- data/lib/spec/api/helper/should_base.rb +0 -31
- data/lib/spec/api/helper/should_helper.rb +0 -93
- data/lib/spec/api/helper/should_negator.rb +0 -72
- data/test/spec/api/helper/arbitrary_predicate_test.rb +0 -112
- data/test/spec/api/helper/diff_test.rb +0 -60
data/examples/airport_spec.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/spec'
|
2
|
-
|
3
|
-
class Airport
|
4
|
-
def working?
|
5
|
-
true
|
6
|
-
end
|
7
|
-
|
8
|
-
def need?(thing)
|
9
|
-
false unless [:cables, :electricity].include? thing
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
context "Airport at home" do
|
14
|
-
setup do
|
15
|
-
@airport = Airport.new
|
16
|
-
end
|
17
|
-
|
18
|
-
specify "should always work" do
|
19
|
-
@airport.should_be_working
|
20
|
-
end
|
21
|
-
|
22
|
-
specify "not need cables" do
|
23
|
-
@airport.should_not_need :cables
|
24
|
-
end
|
25
|
-
|
26
|
-
specify "not need electricity" do
|
27
|
-
@airport.should_not_need :electricity
|
28
|
-
end
|
29
|
-
|
30
|
-
teardown do
|
31
|
-
@airport = nil
|
32
|
-
end
|
33
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/spec'
|
2
|
-
|
3
|
-
context "Rspec allow you to define custom methods" do
|
4
|
-
specify "Rspec should allow you to define methods" do
|
5
|
-
a_method
|
6
|
-
@a_method_called.should_be true
|
7
|
-
end
|
8
|
-
|
9
|
-
def a_method
|
10
|
-
@a_method_called = true
|
11
|
-
end
|
12
|
-
end
|
13
|
-
require File.dirname(__FILE__) + '/../lib/spec'
|
14
|
-
|
15
|
-
context "Rspec allow you to define custom methods" do
|
16
|
-
specify "Rspec should allow you to define methods" do
|
17
|
-
a_method
|
18
|
-
@a_method_called.should_be true
|
19
|
-
end
|
20
|
-
|
21
|
-
def a_method
|
22
|
-
@a_method_called = true
|
23
|
-
end
|
24
|
-
end
|
data/examples/sugar_spec.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../lib/spec'
|
2
|
-
|
3
|
-
context "Underscore sugar" do
|
4
|
-
specify "should be available for regular objects" do
|
5
|
-
1.should_equal 1
|
6
|
-
lambda { 1.should_not_equal 1 }.should_raise
|
7
|
-
end
|
8
|
-
|
9
|
-
specify "should be available for mocks" do
|
10
|
-
sweetened = mock "sweetened"
|
11
|
-
sweetened.should_receive :salt
|
12
|
-
sweetened.salt
|
13
|
-
end
|
14
|
-
end
|
data/lib/spec/api.rb
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
require 'spec/api/exceptions'
|
2
|
-
require 'spec/api/mocks/argument_expectation'
|
3
|
-
require 'spec/api/mocks/order_group'
|
4
|
-
require 'spec/api/mocks/message_expectation'
|
5
|
-
require 'spec/api/mocks/mock'
|
6
|
-
require 'spec/api/expectations'
|
7
|
-
require 'spec/api/helper'
|
8
|
-
require 'spec/api/sugar'
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
module ObjectExpectations
|
3
|
-
def should
|
4
|
-
ShouldHelper.new self
|
5
|
-
end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
class Object
|
10
|
-
include Spec::ObjectExpectations
|
11
|
-
end
|
12
|
-
|
13
|
-
class Numeric
|
14
|
-
def close?(other, precision)
|
15
|
-
(self - other).abs < precision
|
16
|
-
end
|
17
|
-
end
|
data/lib/spec/api/helper.rb
DELETED
data/lib/spec/api/helper/diff.rb
DELETED
@@ -1,54 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'rubygems'
|
3
|
-
require 'diff/lcs' #necessary to do loading bug on some machines - not sure why - DaC
|
4
|
-
require 'diff/lcs/hunk'
|
5
|
-
rescue LoadError
|
6
|
-
raise "You must gem install diff-lcs to use this feature"
|
7
|
-
end
|
8
|
-
|
9
|
-
module Spec
|
10
|
-
class ShouldBase
|
11
|
-
unless defined?(RSPEC_TESTING)
|
12
|
-
alias old_default_message default_message
|
13
|
-
def default_message(expectation, expected=:no_expectation_specified)
|
14
|
-
result = old_default_message(expectation, expected)
|
15
|
-
if expected.is_a?(String)
|
16
|
-
result << "\nDiff:" << diff_as_string(@target.to_s, expected)
|
17
|
-
end
|
18
|
-
result
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# This is snagged from diff/lcs/ldiff.rb (which is a commandline tool)
|
23
|
-
def diff_as_string(data_old, data_new, format=:unified, context_lines=3)
|
24
|
-
data_old = data_old.split(/\n/).map! { |e| e.chomp }
|
25
|
-
data_new = data_new.split(/\n/).map! { |e| e.chomp }
|
26
|
-
output = ""
|
27
|
-
diffs = Diff::LCS.diff(data_old, data_new)
|
28
|
-
return output if diffs.empty?
|
29
|
-
oldhunk = hunk = nil
|
30
|
-
file_length_difference = 0
|
31
|
-
diffs.each do |piece|
|
32
|
-
begin
|
33
|
-
hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, context_lines,
|
34
|
-
file_length_difference)
|
35
|
-
file_length_difference = hunk.file_length_difference
|
36
|
-
next unless oldhunk
|
37
|
-
# Hunks may overlap, which is why we need to be careful when our
|
38
|
-
# diff includes lines of context. Otherwise, we might print
|
39
|
-
# redundant lines.
|
40
|
-
if (context_lines > 0) and hunk.overlaps?(oldhunk)
|
41
|
-
hunk.unshift(oldhunk)
|
42
|
-
else
|
43
|
-
output << oldhunk.diff(format)
|
44
|
-
end
|
45
|
-
ensure
|
46
|
-
oldhunk = hunk
|
47
|
-
output << "\n"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
#Handle the last remaining hunk
|
51
|
-
output << oldhunk.diff(format) << "\n"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
|
3
|
-
class HaveHelper < ShouldBase
|
4
|
-
|
5
|
-
def initialize(target, relativity=:exactly, expected=nil)
|
6
|
-
@target = target
|
7
|
-
@expected = expected == :no ? 0 : expected
|
8
|
-
@at_least = (relativity == :at_least)
|
9
|
-
@at_most = (relativity == :at_most)
|
10
|
-
end
|
11
|
-
|
12
|
-
def method_missing(sym, *args)
|
13
|
-
fail_with_message(build_message(sym)) unless as_specified?(sym)
|
14
|
-
end
|
15
|
-
|
16
|
-
def collection(sym)
|
17
|
-
@target.send(sym)
|
18
|
-
end
|
19
|
-
|
20
|
-
def actual_size(collection)
|
21
|
-
return collection.length if collection.respond_to? :length
|
22
|
-
return collection.size if collection.respond_to? :size
|
23
|
-
end
|
24
|
-
|
25
|
-
def build_message(sym)
|
26
|
-
message = "<#{@target.class.to_s}> should have"
|
27
|
-
message += " at least" if @at_least
|
28
|
-
message += " at most" if @at_most
|
29
|
-
message += " #{@expected} #{sym} (has #{actual_size(collection(sym))})"
|
30
|
-
end
|
31
|
-
|
32
|
-
def as_specified?(sym)
|
33
|
-
return actual_size(collection(sym)) >= @expected if @at_least
|
34
|
-
return actual_size(collection(sym)) <= @expected if @at_most
|
35
|
-
return actual_size(collection(sym)) == @expected
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class TrueClass; def inspect_for_expectation_not_met_error; "<true>" end end
|
2
|
-
class FalseClass; def inspect_for_expectation_not_met_error; "<false>" end end
|
3
|
-
class NilClass; def inspect_for_expectation_not_met_error; "nil" end end
|
4
|
-
class Class; def inspect_for_expectation_not_met_error; "<#{name}>" end end
|
5
|
-
class Proc; def inspect_for_expectation_not_met_error; "<Proc>" end end
|
6
|
-
class Array; def inspect_for_expectation_not_met_error; inspect end end
|
7
|
-
class String; def inspect_for_expectation_not_met_error; inspect end end
|
8
|
-
class Object
|
9
|
-
def inspect_for_expectation_not_met_error
|
10
|
-
return "#{self.class} #{inspect}" if inspect.include? "<"
|
11
|
-
return "#{self.class} <#{inspect}>" unless inspect.include? "<"
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
module Spec
|
16
|
-
class ShouldBase
|
17
|
-
|
18
|
-
def default_message(expectation, expected=:no_expectation_specified)
|
19
|
-
message = "#{@target.inspect_for_expectation_not_met_error} #{expectation}"
|
20
|
-
if (expected != :no_expectation_specified)
|
21
|
-
message << " " << expected.inspect_for_expectation_not_met_error
|
22
|
-
end
|
23
|
-
message
|
24
|
-
end
|
25
|
-
|
26
|
-
def fail_with_message(message)
|
27
|
-
Kernel::raise(Spec::Api::ExpectationNotMetError.new(message))
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
|
3
|
-
class ShouldHelper < ShouldBase
|
4
|
-
|
5
|
-
def initialize(target)
|
6
|
-
@target = target
|
7
|
-
@be_seen = false
|
8
|
-
end
|
9
|
-
|
10
|
-
def not
|
11
|
-
ShouldNegator.new(@target)
|
12
|
-
end
|
13
|
-
|
14
|
-
def have(expected_number=nil)
|
15
|
-
HaveHelper.new(@target, :exactly, expected_number)
|
16
|
-
end
|
17
|
-
|
18
|
-
def have_exactly(expected_number=nil)
|
19
|
-
HaveHelper.new(@target, :exactly, expected_number)
|
20
|
-
end
|
21
|
-
|
22
|
-
def have_at_least(expected_number=nil)
|
23
|
-
HaveHelper.new(@target, :at_least, expected_number)
|
24
|
-
end
|
25
|
-
|
26
|
-
def have_at_most(expected_number=nil)
|
27
|
-
HaveHelper.new(@target, :at_most, expected_number)
|
28
|
-
end
|
29
|
-
|
30
|
-
def satisfy(&block)
|
31
|
-
return if block.call(@target)
|
32
|
-
fail_with_message "Supplied expectation was not satisfied"
|
33
|
-
end
|
34
|
-
|
35
|
-
def equal(expected)
|
36
|
-
fail_with_message(default_message("should equal", expected)) unless (@target == expected)
|
37
|
-
end
|
38
|
-
|
39
|
-
def be(expected = :___no_arg)
|
40
|
-
@be_seen = true
|
41
|
-
return self if (expected == :___no_arg)
|
42
|
-
return if (expected == false and @target.nil?)
|
43
|
-
return if (expected == true and (!@target.nil?) and (@target != false))
|
44
|
-
fail_with_message(default_message("should be", expected)) unless (@target.equal?(expected))
|
45
|
-
end
|
46
|
-
|
47
|
-
def an_instance_of expected_class
|
48
|
-
fail_with_message(default_message("should be an instance of", expected_class)) unless @target.instance_of? expected_class
|
49
|
-
end
|
50
|
-
|
51
|
-
def a_kind_of expected_class
|
52
|
-
fail_with_message(default_message("should be a kind of", expected_class)) unless @target.kind_of? expected_class
|
53
|
-
end
|
54
|
-
|
55
|
-
def respond_to message
|
56
|
-
fail_with_message(default_message("should respond to", message)) unless @target.respond_to? message
|
57
|
-
end
|
58
|
-
|
59
|
-
def method_missing(sym, *args)
|
60
|
-
return if @target.send("#{sym}?", *args)
|
61
|
-
fail_with_message(default_message("should be #{sym}" + (args.empty? ? '' : (' ' + args.join(', '))))) if @be_seen
|
62
|
-
fail_with_message(default_message("should #{sym}" + (args.empty? ? '' : (' ' + args.join(', '))))) unless @be_seen
|
63
|
-
end
|
64
|
-
|
65
|
-
def match(expected)
|
66
|
-
fail_with_message(default_message("should match", expected)) unless (@target =~ expected)
|
67
|
-
end
|
68
|
-
|
69
|
-
def raise(exception=Exception, message=nil)
|
70
|
-
begin
|
71
|
-
@target.call
|
72
|
-
rescue exception => e
|
73
|
-
e.message.should_equal message unless message.nil?
|
74
|
-
return
|
75
|
-
rescue => e
|
76
|
-
fail_with_message("#{default_message("should raise", exception)} but raised #{e.inspect}")
|
77
|
-
end
|
78
|
-
fail_with_message("#{default_message("should raise", exception)} but raised nothing")
|
79
|
-
end
|
80
|
-
|
81
|
-
def throw(symbol)
|
82
|
-
begin
|
83
|
-
catch symbol do
|
84
|
-
@target.call
|
85
|
-
fail_with_message(default_message("should throw", symbol.inspect))
|
86
|
-
end
|
87
|
-
rescue NameError
|
88
|
-
fail_with_message(default_message("should throw", symbol.inspect))
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
end
|
93
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
module Spec
|
2
|
-
|
3
|
-
class ShouldNegator < ShouldBase
|
4
|
-
|
5
|
-
def initialize(target)
|
6
|
-
@target = target
|
7
|
-
@be_seen = false
|
8
|
-
end
|
9
|
-
|
10
|
-
def satisfy
|
11
|
-
fail_with_message "Supplied expectation was satisfied, but should not have been" if (yield @target)
|
12
|
-
end
|
13
|
-
|
14
|
-
def equal(expected)
|
15
|
-
fail_with_message(default_message("should not equal", expected)) if (@target == expected)
|
16
|
-
end
|
17
|
-
|
18
|
-
def be(expected = :no_arg)
|
19
|
-
@be_seen = true
|
20
|
-
return self if (expected == :no_arg)
|
21
|
-
fail_with_message(default_message("should not be", expected)) if (@target.equal?(expected))
|
22
|
-
end
|
23
|
-
|
24
|
-
def an_instance_of expected_class
|
25
|
-
fail_with_message(default_message("should not be an instance of", expected_class)) if @target.instance_of? expected_class
|
26
|
-
end
|
27
|
-
|
28
|
-
def a_kind_of expected_class
|
29
|
-
fail_with_message(default_message("should not be a kind of", expected_class)) if @target.kind_of? expected_class
|
30
|
-
end
|
31
|
-
|
32
|
-
def respond_to message
|
33
|
-
fail_with_message(default_message("should not respond to", message)) if @target.respond_to? message
|
34
|
-
end
|
35
|
-
|
36
|
-
def match(expected)
|
37
|
-
fail_with_message(default_message("should not match", expected)) if (@target =~ expected)
|
38
|
-
end
|
39
|
-
|
40
|
-
def raise(exception=Exception, message=nil)
|
41
|
-
begin
|
42
|
-
@target.call
|
43
|
-
rescue exception => e
|
44
|
-
return unless message.nil? || e.message == message
|
45
|
-
fail_with_message("#{default_message("should not raise", exception)}") if e.instance_of? exception
|
46
|
-
fail_with_message("#{default_message("should not raise", exception)} but raised #{e.inspect}") unless e.instance_of? exception
|
47
|
-
rescue
|
48
|
-
true
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def throw(symbol=:___this_is_a_symbol_that_will_never_occur___)
|
53
|
-
begin
|
54
|
-
catch symbol do
|
55
|
-
@target.call
|
56
|
-
return true
|
57
|
-
end
|
58
|
-
fail_with_message(default_message("should not throw", symbol.inspect))
|
59
|
-
rescue NameError
|
60
|
-
true
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def method_missing(sym, *args)
|
65
|
-
return unless @target.send("#{sym}?", *args)
|
66
|
-
fail_with_message(default_message("should not #{sym}" + (args.empty? ? '' : (' ' + args.join(', '))))) unless @be_seen
|
67
|
-
fail_with_message(default_message("should not be #{sym}" + (args.empty? ? '' : (' ' + args.join(', '))))) if @be_seen
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
@@ -1,112 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../../test_helper'
|
2
|
-
|
3
|
-
module Spec
|
4
|
-
module Api
|
5
|
-
module Helper
|
6
|
-
|
7
|
-
class ArbitraryPredicateTest < Test::Unit::TestCase
|
8
|
-
|
9
|
-
# should_be_funny
|
10
|
-
|
11
|
-
def test_should_be_funny_should_raise_when_target_doesnt_understand_funny
|
12
|
-
assert_raise(NoMethodError) do
|
13
|
-
5.should_be_funny
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def test_should_be_funny_should_raise_when_sending_funny_to_target_returns_false
|
18
|
-
mock = HandCodedMock.new(false)
|
19
|
-
assert_raise(ExpectationNotMetError) do
|
20
|
-
mock.should_be_funny
|
21
|
-
end
|
22
|
-
mock.__verify
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_should_be_funny_should_raise_when_sending_funny_to_target_returns_nil
|
26
|
-
mock = HandCodedMock.new(nil)
|
27
|
-
assert_raise(ExpectationNotMetError) do
|
28
|
-
mock.should_be_funny
|
29
|
-
end
|
30
|
-
mock.__verify
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_should_be_funny_should_not_raise_when_sending_funny_to_target_returns_true
|
34
|
-
mock = HandCodedMock.new(true)
|
35
|
-
assert_nothing_raised do
|
36
|
-
mock.should_be_funny
|
37
|
-
end
|
38
|
-
mock.__verify
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_should_be_funny_should_not_raise_when_sending_funny_to_target_returns_something_other_than_true_false_or_nil
|
42
|
-
mock = HandCodedMock.new(5)
|
43
|
-
assert_nothing_raised do
|
44
|
-
mock.should_be_funny
|
45
|
-
end
|
46
|
-
mock.__verify
|
47
|
-
end
|
48
|
-
|
49
|
-
# should_be_funny(args)
|
50
|
-
|
51
|
-
def test_should_be_funny_with_args_passes_args_properly
|
52
|
-
mock = HandCodedMock.new(true)
|
53
|
-
assert_nothing_raised do
|
54
|
-
mock.should_be_hungry(1, 2, 3)
|
55
|
-
end
|
56
|
-
mock.__verify
|
57
|
-
end
|
58
|
-
|
59
|
-
# should_not_be_funny
|
60
|
-
|
61
|
-
def test_should_not_be_funny_should_raise_when_target_doesnt_understand_funny
|
62
|
-
assert_raise(NoMethodError) do
|
63
|
-
5.should_not_be_funny
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_should_not_be_funny_should_raise_when_sending_funny_to_target_returns_true
|
68
|
-
mock = HandCodedMock.new(true)
|
69
|
-
assert_raise(ExpectationNotMetError) do
|
70
|
-
mock.should_not_be_funny
|
71
|
-
end
|
72
|
-
mock.__verify
|
73
|
-
end
|
74
|
-
|
75
|
-
def test_should_not_be_funny_shouldnt_raise_when_sending_funny_to_target_returns_nil
|
76
|
-
mock = HandCodedMock.new(nil)
|
77
|
-
assert_nothing_raised do
|
78
|
-
mock.should_not_be_funny
|
79
|
-
end
|
80
|
-
mock.__verify
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_should_not_be_funny_shouldnt_raise_when_sending_funny_to_target_returns_false
|
84
|
-
mock = HandCodedMock.new(false)
|
85
|
-
assert_nothing_raised do
|
86
|
-
mock.should_not_be_funny
|
87
|
-
end
|
88
|
-
mock.__verify
|
89
|
-
end
|
90
|
-
|
91
|
-
def test_should_not_be_funny_should_raise_when_sending_funny_to_target_returns_something_other_than_true_false_or_nil
|
92
|
-
mock = HandCodedMock.new(5)
|
93
|
-
assert_raise(ExpectationNotMetError) do
|
94
|
-
mock.should_not_be_funny
|
95
|
-
end
|
96
|
-
mock.__verify
|
97
|
-
end
|
98
|
-
|
99
|
-
# should_be_funny(args)
|
100
|
-
|
101
|
-
def test_should_not_be_funny_with_args_passes_args_properly
|
102
|
-
mock = HandCodedMock.new(false)
|
103
|
-
assert_nothing_raised do
|
104
|
-
mock.should_not_be_hungry(1, 2, 3)
|
105
|
-
end
|
106
|
-
mock.__verify
|
107
|
-
end
|
108
|
-
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|
112
|
-
end
|