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

example(description=nil, &block)
Alias for: spec
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
it(description=nil, &block)
Alias for: spec
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
Also aliased as: it, test, example
test(description=nil, &block)
Alias for: spec
xexample(description=nil, &block)
Alias for: xspec
xit(description=nil, &block)
Alias for: xspec
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
Also aliased as: xit, xtest, xexample
xtest(description=nil, &block)
Alias for: xspec