and_raise(exception)
click to toggle source
def and_raise(exception)
if exception.kind_of? String
@raising = RuntimeError.new exception
else
@raising = exception
end
end
and_return(*args)
click to toggle source
def and_return(*args)
case args.size
when 0
@returning = nil
when 1
@returning = args[0]
else
@multiple_returns = true
@returning = args
count[1] = args.size if count[1] < args.size
end
self
end
and_yield(*args)
click to toggle source
def and_yield(*args)
@yielding << args
self
end
any_number_of_times()
click to toggle source
def any_number_of_times
@count = [:any_number_of_times, 0]
self
end
arguments()
click to toggle source
def arguments
@arguments
end
at_least(n)
click to toggle source
def at_least(n)
@count = [:at_least, n_times(n)]
self
end
at_most(n)
click to toggle source
def at_most(n)
@count = [:at_most, n_times(n)]
self
end
called()
click to toggle source
def called
@calls = calls + 1
end
calls()
click to toggle source
def calls
@calls ||= 0
end
count()
click to toggle source
def count
@count ||= mock? ? [:exactly, 1] : [:any_number_of_times, 0]
end
exactly(n)
click to toggle source
def exactly(n)
@count = [:exactly, n_times(n)]
self
end
mock?()
click to toggle source
def mock?
@type == :mock
end
once()
click to toggle source
raising?()
click to toggle source
def raising?
@raising != nil
end
returning()
click to toggle source
def returning
if @multiple_returns
if @returning.size == 1
@multiple_returns = false
return @returning = @returning.shift
end
return @returning.shift
end
@returning
end
stub?()
click to toggle source
def stub?
@type == :stub
end
times()
click to toggle source
twice()
click to toggle source
with(*args)
click to toggle source
def with(*args)
raise ArgumentError, "you must specify the expected arguments" if args.empty?
@arguments = *args
behaves_like_ruby_1_9 = *[]
if (behaves_like_ruby_1_9)
@arguments = @arguments.first if @arguments.length <= 1
end
self
end
yielding?()
click to toggle source
def yielding?
!@yielding.empty?
end