如何将共享上下文包含到 rails 中的每个规范

How to include shared context to every spec in rails

我有一个共享上下文:

shared_context :current_country do
  let!(:country) { create :country, slug: "kw" } unless Country.find_by(slug: "kw").present?
end

我需要访问每个规范中的 country 变量。

要使用它,我需要在每个规范文件中 include_context :current_country。是否可以避免在每个规范文件中包含此行,而是将上下文配置为随处可用?

您可以声明您的共享上下文

RSpec.shared_context "shared stuff" do
  let!(:country) do
    create :country, slug: "kw"
  end unless Country.find_by(slug: "kw").present?
end

并将其包含在配置中

RSpec.configure do |config|
  config.include_context "shared stuff"
end