Можно ли запустить один тест RSpec раньше других? - PullRequest
1 голос
/ 17 марта 2019

Я использую factory_bot в своих тестах и ​​хочу проверить все фабрики, прежде чем запускать какие-либо тесты. Я написал тест для такой проверки и хочу, чтобы он запускался первым - возможно ли это в RSpec?

1 Ответ

0 голосов
/ 18 марта 2019

Да, это возможно, см. Этот пост: https://thoughtbot.com/blog/testing-your-factories-first. Подход заключается в создании factories_spec и последующем добавлении его в качестве предварительного условия к rake file.

(1) Создайте файл спецификации фабрики:

 # spec/factories_spec.rb    
FactoryBot.factories.map(&:name).each do |factory_name|
  describe "The #{factory_name} factory" do
    it 'is valid' do
      expect(build(factory_name)).to be_valid
    end
  end
end

(2) Чтобы добавить предварительное условие к спецификации рейка:

# Rakefile    
if defined?(RSpec)
  desc 'Run factory specs.'
  RSpec::Core::RakeTask.new(:factory_specs) do |t|
    t.pattern = './spec/factories_spec.rb'
  end
end

task spec: :factory_specs

(3) Запустите тест с

rake spec
...