class Matest::ExampleGroup
Attributes
lets[R]
printer[RW]
scope_block[R]
specs[R]
statuses[R]
Public Class Methods
let(var_name, &block)
click to toggle source
# File lib/matest/example_group.rb, line 45 def self.let(var_name, &block) define_method(var_name) do instance_variable_set(:"@#{var_name}", block.call) end end
new(scope_block)
click to toggle source
# File lib/matest/example_group.rb, line 10 def initialize(scope_block) @scope_block = scope_block @specs = [] @lets = [] @statuses = [] end
Public Instance Methods
execute!()
click to toggle source
# File lib/matest/example_group.rb, line 27 def execute! instance_eval(&scope_block) specs.shuffle.each do |spec, desc| res = run_spec(spec) printer.prints(res) end end
let(var_name, bang=false, &block)
click to toggle source
# File lib/matest/example_group.rb, line 51 def let(var_name, bang=false, &block) lets << Let.new(var_name, block, bang=false) end
let!(var_name, &block)
click to toggle source
# File lib/matest/example_group.rb, line 55 def let!(var_name, &block) lets << Let.new(var_name, block, bang=true) end
run_spec(spec)
click to toggle source
# File lib/matest/example_group.rb, line 59 def run_spec(spec) status = begin result = spec.call status_class = case result when true Matest::SpecPassed when false Matest::SpecFailed when Matest::SkipMe Matest::SpecSkipped else Matest::NotANaturalAssertion end status_class.new(spec, result) rescue Exception => e Matest::ExceptionRaised.new(spec, e, spec.description) end @statuses << status status end
spec(description=nil, &block)
click to toggle source
# File lib/matest/example_group.rb, line 17 def spec(description=nil, &block) current_example = block_given? ? block : Matest::SkipMe.new(caller) specs << Example.new(current_example, description, lets) end
xspec(description=nil, &block)
click to toggle source
# File lib/matest/example_group.rb, line 22 def xspec(description=nil, &block) current_example = Matest::SkipMe.new(caller) specs << Example.new(current_example, description, []) end