rspec before(:each)hook - 有条件地应用

时间:2015-03-17 08:45:43

标签: rspec rspec-rails ruby-on-rails-4.2

我在rails_helper.rb

中有关注
RSpec.configure do |config|
  # ...
  config.before(:each, type: :controller) do
    # SOMETHING
  end
end

我想定义这个SOMETHING适用的目录(在我的情况下只适用于spec/controllers/api目录下的文件)。

有机会实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

您可以为RSpec filter使用更专业的名称:

RSpec.configure do |config|
  # ...
  config.before(:each, :subtype => :controllers_api) do
    # SOMETHING
  end
end

然后在spec/controllers/api中的RSpec示例中添加一些元数据:

RSpec.describe "something", :subtype => :controllers_api do
end

SOMETHING应仅在具有:subtype => :controllers_api元数据的示例上运行。我没有使用:type,因为可能还有其他行为定义。