gpt4 book ai didi

ruby - 如何跳过特定 Rspec 标签的一些设置?

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:05 24 4
gpt4 key购买 nike

Rspec 可以根据测试标签的存在 轻松配置设置。例如,如果某些测试需要创建一个平行宇宙(假设您有代码来执行此操作):

# some_spec.rb
describe "in a parallel universe", alter_spacetime: true do
# whatever
end

# spec_helper.rb
RSpec.configure do |config|
config.before(:each, :alter_spacetime) do |example|
# fancy magic here
end
end

但我想做相反的事情:“在每次测试之前,除非您看到这个标签,否则请执行以下操作...”

如何根据某些测试中是否存在标记来跳过 spec_helper 中的设置步骤?

最佳答案

一开始,你会期待这样的东西

RSpec.configure do |config|
config.before(:each, alter_spacetime: false) do |example|
# fancy magic here
end
end

以这种方式工作,但事实并非如此。

但是您可以访问example,这是一个Example实例并具有 #metadata 方法,该方法返回 Metadata目的。您可以用它检查标志的值,特定示例上的标志将覆盖包含 describe block 的标志。

config.before(:each) do |example|
# Note that we're not using a block param to get `example`
unless example.metadata[:alter_spacetime] == false
# fancy magic here
end
end

关于ruby - 如何跳过特定 Rspec 标签的一些设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27864080/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com