sinatra/test/helper.rb

37 lines
1.0 KiB
Ruby
Raw Normal View History

require 'rubygems' # required so that sinatra/base can require rack
$:.unshift File.dirname(File.dirname(__FILE__)) + '/lib'
require 'sinatra/base'
require 'sinatra/test/unit'
module Sinatra::Test
# Sets up a Sinatra::Base subclass defined with the block
# given. Used in setup or individual spec methods to establish
# the application.
def mock_app(base=Sinatra::Base, &block)
@app = Sinatra.new(base, &block)
end
end
class Sinatra::Base
# Allow assertions in request context
include Test::Unit::Assertions
end
##
# test/spec/mini
# http://pastie.caboo.se/158871
# chris@ozmm.org
#
def describe(*args, &block)
return super unless (name = args.first) && block
klass = Class.new(Test::Unit::TestCase) do
def self.it(name, &block)
define_method("test_#{name.gsub(/\W/,'_')}", &block)
end
def self.xspecify(*args) end
def self.before(&block) define_method(:setup, &block) end
def self.after(&block) define_method(:teardown, &block) end
end
klass.class_eval &block
end