自定义设置
像 rspec-rails 这样的扩展可以添加自己的配置设置。
简单设置(带默认值)
给定一个名为“additional_setting_spec.rb”的文件,其中包含
RSpec.configure do |c|
c.add_setting :custom_setting
end
RSpec.describe "custom setting" do
it "is nil by default" do
expect(RSpec.configuration.custom_setting).to be_nil
end
it "is exposed as a predicate" do
expect(RSpec.configuration.custom_setting?).to be(false)
end
it "can be overridden" do
RSpec.configuration.custom_setting = true
expect(RSpec.configuration.custom_setting).to be(true)
expect(RSpec.configuration.custom_setting?).to be(true)
end
end
当我运行 `rspec ./additional_setting_spec.rb`
那么示例应该全部通过。
默认为 `true`
给定一个名为“additional_setting_spec.rb”的文件,其中包含
RSpec.configure do |c|
c.add_setting :custom_setting, :default => true
end
RSpec.describe "custom setting" do
it "is true by default" do
expect(RSpec.configuration.custom_setting).to be(true)
end
it "is exposed as a predicate" do
expect(RSpec.configuration.custom_setting?).to be(true)
end
it "can be overridden" do
RSpec.configuration.custom_setting = false
expect(RSpec.configuration.custom_setting).to be(false)
expect(RSpec.configuration.custom_setting?).to be(false)
end
end
当我运行 `rspec ./additional_setting_spec.rb`
那么示例应该全部通过。
在随后的 `RSpec.configure` 块中被覆盖
给定一个名为“additional_setting_spec.rb”的文件,其中包含
RSpec.configure do |c|
c.add_setting :custom_setting
end
RSpec.configure do |c|
c.custom_setting = true
end
RSpec.describe "custom setting" do
it "returns the value set in the last configure block to get eval'd" do
expect(RSpec.configuration.custom_setting).to be(true)
end
it "is exposed as a predicate" do
expect(RSpec.configuration.custom_setting?).to be(true)
end
end
当我运行 `rspec ./additional_setting_spec.rb`
那么示例应该全部通过。