2008-11-07 13:25:40 -05:00
|
|
|
module ActiveSupport
|
|
|
|
module Testing
|
|
|
|
module Declarative
|
2010-08-14 01:13:00 -04:00
|
|
|
|
2009-04-07 18:54:02 -04:00
|
|
|
def self.extended(klass)
|
|
|
|
klass.class_eval do
|
2010-08-14 01:13:00 -04:00
|
|
|
|
2009-04-07 18:54:02 -04:00
|
|
|
unless method_defined?(:describe)
|
|
|
|
def self.describe(text)
|
2010-05-19 15:37:41 -04:00
|
|
|
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
|
2009-04-07 18:54:02 -04:00
|
|
|
def self.name
|
|
|
|
"#{text}"
|
|
|
|
end
|
|
|
|
RUBY_EVAL
|
|
|
|
end
|
|
|
|
end
|
2010-08-14 01:13:00 -04:00
|
|
|
|
2009-04-07 18:54:02 -04:00
|
|
|
end
|
2010-08-14 01:13:00 -04:00
|
|
|
end
|
2009-04-07 18:54:02 -04:00
|
|
|
|
|
|
|
unless defined?(Spec)
|
|
|
|
# test "verify something" do
|
|
|
|
# ...
|
|
|
|
# end
|
|
|
|
def test(name, &block)
|
|
|
|
test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
|
|
|
defined = instance_method(test_name) rescue false
|
|
|
|
raise "#{test_name} is already defined in #{self}" if defined
|
|
|
|
if block_given?
|
|
|
|
define_method(test_name, &block)
|
|
|
|
else
|
|
|
|
define_method(test_name) do
|
|
|
|
flunk "No implementation provided for #{name}"
|
|
|
|
end
|
2008-11-07 13:25:40 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|