Как написать базовую настройку и разборку, которая выполняется перед каждым ActionDispatch::IntegrationTest

У меня есть ряд интеграционных тестов, написанных с использованием ActionDispatch::IntegrationTest для приложения Rails 4. Я пытаюсь добавить несколько строк к каждому setup а также teardown который я хочу вызывать перед каждым запуском теста, не переопределяя setup а также teardown обратные вызовы, которые являются специфическими для каждого теста.

В общем, я хочу сделать что-то вроде следующего:

class ActionDispatch::IntegrationTest
  setup do
    DatabaseCleaner.start
    super
  end

  teardown do
    Warden.test_reset!
    DatabaseCleaner.clean
    super
  end
end

Я не хочу, чтобы они перезаписывали более конкретные настройки, а скорее хотел бы, чтобы они запускались раньше. Поэтому я хочу, чтобы эта настройка работала после базовой, написанной выше:

class Authorized < ActionDispatch::IntegrationTest
  setup do
    @user = create(:user)
    sign_in(@user)
  end

  test 'some stuff' do
    # Integration test here
  end
end

В настоящее время я получаю сообщение об ошибке:

NoMethodError: super called outside of method

и поэтому мне интересно, каким будет правильный способ сделать это. Любые советы будут высоко ценится! заранее спасибо

0 ответов

Другие вопросы по тегам