Module: ActiveSupport::Testing::Declarative

Included in:
ActiveSupport::TestCase
Defined in:
activesupport/lib/active_support/testing/declarative.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(klass) ⇒ Object

:nodoc:


5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'activesupport/lib/active_support/testing/declarative.rb', line 5

def self.extended(klass) #:nodoc:
  klass.class_eval do

    unless method_defined?(:describe)
      def self.describe(text)
        class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
          def self.name
            "#{text}"
          end
        RUBY_EVAL
      end
    end

  end
end

Instance Method Details

#test(name, &block) ⇒ Object

Helper to define a test method using a String. Under the hood, it replaces spaces with underscores and defines the test method.

test "verify something" do
  ...
end

28
29
30
31
32
33
34
35
36
37
38
39
# File 'activesupport/lib/active_support/testing/declarative.rb', line 28

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
  end
end