是否可以在其他之前运行一次RSpec测试?

问题描述 投票:1回答:1

我在测试中使用factory_bot,并希望在任何测试运行之前验证所有工厂。我为这样的验证写了一个测试并希望它先运行 - 这在RSpec中是否可行?

ruby-on-rails ruby rspec factory-bot
1个回答
0
投票

是的,这是可行的,请看这篇文章: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)添加rake规范的先决条件:

# 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
© www.soinside.com 2019 - 2024. All rights reserved.