Module: ActiveSupport::Testing::Declarative
- Included in:
- ActiveSupport::TestCase
- Defined in:
- activesupport/lib/active_support/testing/declarative.rb
Class Method Summary collapse
-
.extended(klass) ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#test(name, &block) ⇒ Object
Helper to define a test method using a String.
Class Method Details
.extended(klass) ⇒ Object
:nodoc:
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# 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) if block_given? super else = "`describe` without a block is deprecated, please switch to: `def self.name; #{text.inspect}; end`\n" ActiveSupport::Deprecation.warn class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1 def self.name "#{text}" end RUBY_EVAL end 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
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'activesupport/lib/active_support/testing/declarative.rb', line 35 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 |