Class: Test::Spec::Should
- Inherits:
-
Object
show all
- Includes:
- Unit::Assertions
- Defined in:
- lib/test/spec/should-output.rb,
lib/test/spec.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(object, message = nil) ⇒ Should
Returns a new instance of Should.
45
46
47
48
|
# File 'lib/test/spec.rb', line 45
def initialize(object, message=nil)
@object = object
@message = message
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# File 'lib/test/spec.rb', line 182
def method_missing(name, *args, &block)
return _raise(*args, &block) if name == :raise
if @object.respond_to?("#{name}?")
assert @object.__send__("#{name}?", *args),
"#{name}? expected to be true. #{@message}"
else
if @object.respond_to?(name)
assert @object.__send__(name, *args),
"#{name} expected to be true. #{@message}"
else
super
end
end
end
|
Class Method Details
.deprecated_alias(to, from) ⇒ Object
38
39
40
41
42
43
|
# File 'lib/test/spec.rb', line 38
def self.deprecated_alias(to, from) define_method(to) { |*args|
warn "Test::Spec::Should##{to} is deprecated and will be removed in future versions."
__send__ from, *args
}
end
|
Instance Method Details
161
162
163
|
# File 'lib/test/spec.rb', line 161
def <(value)
assert_operator @object, :<, value, @message
end
|
#<=(value) ⇒ Object
165
166
167
|
# File 'lib/test/spec.rb', line 165
def <=(value)
assert_operator @object, :<=, value, @message
end
|
#===(value) ⇒ Object
169
170
171
|
# File 'lib/test/spec.rb', line 169
def ===(value)
assert_operator @object, :===, value, @message
end
|
153
154
155
|
# File 'lib/test/spec.rb', line 153
def >(value)
assert_operator @object, :>, value, @message
end
|
#>=(value) ⇒ Object
157
158
159
|
# File 'lib/test/spec.rb', line 157
def >=(value)
assert_operator @object, :>=, value, @message
end
|
#_raise(*args, &block) ⇒ Object
131
132
133
134
135
|
# File 'lib/test/spec.rb', line 131
def _raise(*args, &block)
args = [RuntimeError] if args.empty?
block ||= @object
assert_raise(*(args + [@message]), &block)
end
|
60
61
62
|
# File 'lib/test/spec.rb', line 60
def a
self
end
|
#add_assertion ⇒ Object
51
52
53
|
# File 'lib/test/spec.rb', line 51
def add_assertion
$TEST_SPEC_TESTCASE && $TEST_SPEC_TESTCASE.__send__(:add_assertion)
end
|
56
57
58
|
# File 'lib/test/spec.rb', line 56
def an
self
end
|
#be(*value) ⇒ Object
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/test/spec.rb', line 97
def be(*value)
case value.size
when 0
self
when 1
if CustomShould === value.first
pass value.first
else
assert_same value.first, @object, @message
end
else
raise ArgumentError, "should.be needs zero or one argument"
end
end
|
#close(value, delta) ⇒ Object
92
93
94
|
# File 'lib/test/spec.rb', line 92
def close(value, delta)
assert_in_delta value, @object, delta, @message
end
|
#equal(value) ⇒ Object
Also known as:
==
87
88
89
|
# File 'lib/test/spec.rb', line 87
def equal(value)
assert_equal value, @object, @message
end
|
#include(value) ⇒ Object
147
148
149
150
151
|
# File 'lib/test/spec.rb', line 147
def include(value)
msg = build_message(@message, "<?> expected to include ?, but it didn't.",
@object, value)
assert_block(msg) { @object.include?(value) }
end
|
#instance_of(klass) ⇒ Object
117
118
119
|
# File 'lib/test/spec.rb', line 117
def instance_of(klass)
assert_instance_of klass, @object, @message
end
|
#kind_of(klass) ⇒ Object
122
123
124
|
# File 'lib/test/spec.rb', line 122
def kind_of(klass)
assert_kind_of klass, @object, @message
end
|
#match(value) ⇒ Object
Also known as:
=~
112
113
114
|
# File 'lib/test/spec.rb', line 112
def match(value)
assert_match value, @object, @message
end
|
#messaging(message) ⇒ Object
Also known as:
blaming
75
76
77
78
|
# File 'lib/test/spec.rb', line 75
def messaging(message)
@message = message.to_s
self
end
|
141
142
143
|
# File 'lib/test/spec.rb', line 141
def nil
assert_nil @object, @message
end
|
#not(*args) ⇒ Object
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/test/spec.rb', line 64
def not(*args)
case args.size
when 0
ShouldNot.new(@object, @message)
when 1
ShouldNot.new(@object, @message).pass(args.first)
else
raise ArgumentError, "#not takes zero or one argument(s)."
end
end
|
#output(expected, to = STDOUT) ⇒ Object
Captures output from the IO given as the second argument (STDIN by default) and matches it against a String or Regexp given as the first argument.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/test/spec/should-output.rb', line 10
def output(expected, to = STDOUT)
old_to = to.dup
to.reopen File.open(File.join(Dir.tmpdir, "should_output_#{$$}"), "w+")
@object.call
out = to.dup
to.reopen old_to
out.rewind
output = out.read
case expected
when Regexp
output.should.match expected
else
output.should.equal expected
end
ensure
out.close
begin
to.seek 0, IO::SEEK_END
rescue Errno::ESPIPE
rescue Errno::EPIPE
end
FileUtils.rm_f out.path
end
|
#pass(custom) ⇒ Object
173
174
175
176
177
178
179
180
|
# File 'lib/test/spec.rb', line 173
def pass(custom)
_wrap_assertion {
assert_nothing_raised(Test::Unit::AssertionFailedError,
@message || custom.failure_message) {
assert custom.matches?(@object), @message || custom.failure_message
}
}
end
|
#respond_to(method) ⇒ Object
127
128
129
|
# File 'lib/test/spec.rb', line 127
def respond_to(method)
assert_respond_to @object, method, @message
end
|
#satisfy(&block) ⇒ Object
81
82
83
84
85
|
# File 'lib/test/spec.rb', line 81
def satisfy(&block)
assert_block(@message || "satisfy block failed.") {
yield @object
}
end
|
#throw(*args) ⇒ Object
137
138
139
|
# File 'lib/test/spec.rb', line 137
def throw(*args)
assert_throws(*(args + [@message]), &@object)
end
|