使用 Guard 在模型更改时触发整体工厂规范

Triggering a monolithic factory spec on a model change using Guard

我想找到一种方法来测试我的工厂,并在 Thoughtbot 上遇到了这个很棒的 article 来完成这个:

 # spec/factories_spec.rb

FactoryBot.factories.map(&:name).each do |factory_name|
  describe "The #{factory_name} factory" do
     it 'is valid' do
      build(factory_name).should be_valid
     end
  end
end

在更改我的 Guardfile 时我不太了解,只是想知道什么是让它工作的最佳方法。我注意到默认情况下为控制器设置了一些东西,但没有为模型设置:

watch(rails.controllers) do |m|
  [
    rspec.spec.call("routing/#{m[1]}_routing"),
    rspec.spec.call("controllers/#{m[1]}_controller"),
    rspec.spec.call("acceptance/#{m[1]}")
  ]
end

是的,这应该有效

watch(%r{app/models/.*\.rb}) do
  [`spec/factories_spec.rb`]
end