class Tengu::ItBlock
Attributes
description[R]
expectations[R]
Public Class Methods
new(describe_block, description, block)
click to toggle source
# File lib/tengu/it_block.rb, line 11 def initialize(describe_block, description, block) @describe_block = describe_block @description = description @block = block @success = true @pending = false @expectations = [] @error = nil end
Public Instance Methods
errored?()
click to toggle source
# File lib/tengu/it_block.rb, line 32 def errored? @error end
pending?()
click to toggle source
# File lib/tengu/it_block.rb, line 42 def pending? @pending end
run(listeners = [])
click to toggle source
# File lib/tengu/it_block.rb, line 21 def run(listeners = []) @listeners = listeners begin instance_eval(&@block) rescue Exception => e @error = e @success = false end notify(@listeners) end
success?()
click to toggle source
# File lib/tengu/it_block.rb, line 36 def success? unless pending? || errored? @expectations.all? { |expectation| expectation.success? } end end
Private Instance Methods
allow(object)
click to toggle source
# File lib/tengu/it_block.rb, line 48 def allow(object) Allow.new(@listeners, object) end
double(identifier = nil, args = {})
click to toggle source
# File lib/tengu/it_block.rb, line 56 def double(identifier = nil, args = {}) Double.new(identifier, args) end
expect(object)
click to toggle source
# File lib/tengu/it_block.rb, line 82 def expect(object) expectation = Expectation.new(object) @expectations << expectation expectation end
method_missing(method, *args, &block)
click to toggle source
# File lib/tengu/it_block.rb, line 88 def method_missing(method, *args, &block) @describe_block.send(method, *args, &block) end
notify(listeners)
click to toggle source
# File lib/tengu/it_block.rb, line 60 def notify(listeners) listeners.each do |listener| listener.notify(success_state, self) listener.notify(:finished_case, self) end end
pending()
click to toggle source
# File lib/tengu/it_block.rb, line 77 def pending @success = false @pending = true end
receive(message)
click to toggle source
# File lib/tengu/it_block.rb, line 52 def receive(message) Receiver.new(message) end
success_state()
click to toggle source
# File lib/tengu/it_block.rb, line 67 def success_state if pending? :pending elsif success? :success else :failure end end