gpt4 book ai didi

ruby - 包含带有变量的 Rspec 示例

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

我有几套 rspecs,它们都包含一些共享示例。如果原始规范有一些变量集,我希望这些共享示例随后包含其他共享示例。基本上这就是我想要做的。

例子:

文件:spec/test_spec.rb

describe 'some thing' do
let(:some_feature) { true }

describe 'some tests' do
include_examples "shared_tests"
end
end

文件 spec/shared/shared_tests.rb

shared_examples_for "shared_tests" do
include_examples "feature_specific_tests" if some_feature
end

正如预期的那样,这将引发如下错误:

undefined local variable or method `some_feature`

有没有办法做到这一点?我想也许我可以定义 @some_featurebefore(:all)阻止然后使用 if @some_featureshared_examples , 但那总是 nil .

最佳答案

重写答案以使其更清晰:

你有这个:

文件:spec/test_spec.rb

describe 'some thing' do
let(:some_feature) { true }

describe 'some tests' do
include_examples "shared_tests"
end
end

文件 spec/shared/shared_tests.rb

shared_examples_for "shared_tests" do
include_examples "feature_specific_tests" if some_feature
end

将其更改为:

文件:spec/test_spec.rb

describe 'some thing' do

describe 'some tests' do
include_examples "shared_tests" do
let(:some_feature) { true }
end
end
end

文件 spec/shared/shared_tests.rb

shared_examples "shared_tests" do
if some_feature
it_should_behave_like "feature_specific_tests"
end

# rest of your tests for shared example group
# 'a logged in registered user goes here
end

这一切都会很好地工作:-)

关于ruby - 包含带有变量的 Rspec 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582572/

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