Module: MiniTestSpecRails::DSL::ClassMethods

Defined in:
lib/minitest-spec-rails/dsl.rb

Instance Method Summary collapse

Instance Method Details

#after(type = nil, &block) ⇒ Object



24
25
26
# File 'lib/minitest-spec-rails/dsl.rb', line 24

def after(type = nil, &block)
  teardown { self.instance_eval(&block) }
end

#before(type = nil, &block) ⇒ Object



20
21
22
# File 'lib/minitest-spec-rails/dsl.rb', line 20

def before(type = nil, &block)
  setup { self.instance_eval(&block) }
end

#describe(*args, &block) ⇒ Object



13
14
15
16
17
18
# File 'lib/minitest-spec-rails/dsl.rb', line 13

def describe(*args, &block)
  stack = Minitest::Spec.describe_stack
  stack.push self if stack.empty?
  super(*args) { class_eval(&block) }
  stack.pop if stack.length == 1
end

#described_classObject



45
46
47
48
49
50
51
# File 'lib/minitest-spec-rails/dsl.rb', line 45

def described_class
  begin
    describing_class.name.gsub(/Test$/, '').constantize
  rescue NameError
    nil
  end
end

#describing_classObject



41
42
43
# File 'lib/minitest-spec-rails/dsl.rb', line 41

def describing_class
  ancestors.detect { |a| Class === a && rails_test_cases.include?(a.superclass) }
end

#rails_test_casesObject



32
33
34
# File 'lib/minitest-spec-rails/dsl.rb', line 32

def rails_test_cases
  RAILS_TEST_CASES
end

#register_rails_test_case(test_case) ⇒ Object



36
37
38
39
# File 'lib/minitest-spec-rails/dsl.rb', line 36

def register_rails_test_case(test_case)
  return if RAILS_TEST_CASES.include?(test_case)
  RAILS_TEST_CASES.unshift(test_case)
end

#test(name, &block) ⇒ Object



28
29
30
# File 'lib/minitest-spec-rails/dsl.rb', line 28

def test(name, &block)
  it { self.instance_eval(&block) }
end