lib/queencheck/rspec.rb in queencheck-0.1.2 vs lib/queencheck/rspec.rb in queencheck-1.0.0

- old
+ new

@@ -1,11 +1,52 @@ +require 'queencheck' +require 'rspec' -begin - require 'queencheck' -rescue LoadError - require "pathname" - $:.unshift Pathname.new(File.expand_path('../../', __FILE__)) - require 'queencheck' -end +module RSpec + module Core + class ExampleGroup + def self.QueenCheck(name, *args, &block) + describe(*[name]) { + report = nil -require 'rspec' -require 'queencheck/rspec/dsl' + it "running tests" do + report = ::QueenCheck::Testable.new(*args, &block).check + end + + it "all tests passes" do + report.count(:all).should == report.count(:success) + end + } + end + + def self.verboseQueenCheck(name, *args, &block) + describe(*[name]) { + assert = proc { | *props | + proc{ block.call(*props) } + } + its = proc { | *props | + it("Gen: #{props.map{|i| i.inspect}.join(', ')}", &assert.call(*props)) + } + ::QueenCheck::Testable.new(*args, &its).check + } + end + + def self.labelingQueenCheck(name, labels, *args, &block) + checker = ::QueenCheck::Testable.new(*args, &block) + report = checker.check_with_label(labels) + describe(*[name]) { + it "all tests passes" do + report.count(:all).should == report.count(:success) + end + + describe "labels" do + labels.each_pair do | label, p | + it label do + report.count(label).should == report.count(label, report.successes) + end + end + end + } + end + end + end +end