Минитест и настройка / отрыв крючков - PullRequest
0 голосов
/ 30 января 2019

У меня есть следующий код в test_helper

require "minitest/spec"
require "minitest/autorun"
require "database_cleaner"

class ActiveSupport::TestCase
  DatabaseCleaner.strategy = :deletion

  include Minitest::Spec::DSL

  setup { DatabaseCleaner.start }
  teardown { DatabaseCleaner.clean }
end

И если я напишу такой тест

class MyTest < ActiveSupport::TestCase
  test 'test' do
    #some code
  end
end

настройка и разборка

Но если я напишу тест, подобный этому

class MyTest < ActiveSupport::TestCase
  describe 'some test'
    before do
       @user = FactoryBot.create(:user)
    end

    it 'first test' do
      # some code
    end

    it 'second test' do
      # some code
    end
  end
end

, настройка и демонтаж не будут выполнены.Зачем?Можно это исправить?

1 Ответ

0 голосов
/ 30 января 2019

Попробуйте добавить следующее к вашему test_helper.rb:

class Minitest::Spec
  before :each do
    DatabaseCleaner.start
  end

  after :each do
    DatabaseCleaner.clean
  end
end

Или, если вы используете minitest-around gem:

class Minitest::Spec
  around do |tests|
    DatabaseCleaner.cleaning(&tests)
  end
end

Важным здесь является использование Minitest::Spec класс вместо ActiveSupport::TestCase.

См. документы по очистке базы данных для получения дополнительной информации.

...