gpt4 book ai didi

ruby - Rspec - 在另一个 let 语句中使用 let 语句中定义的变量

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

在我的 RSpec 测试中,我使用 let() 语法定义了多个方法。我遇到过这样一种情况,我需要将 let 语句中定义的变量用于同一个 describe block 中的另一个 let 语句。

 context 'Reuse the name of first car in the second car' do
it_behaves_like 'some car test' do

let(:car1) do {
name1: "#{testcase['Car']}_#{Time.now.round}",
car_model: testcase['Toyota']
}

end

let(:car2) do {
name2: name1
}
end
end
end

如您所见,我想使用我定义的确切名称值 name1里面:car1对于 name2里面:car2 .上面的语法抛出以下错误

NameError:
undefined local variable or method `name1' for #<RSpec::

如何使用 name1 的精确值在:car2 ?任何想法..

最佳答案

let(:name1) { "#{testcase['Car']}_#{Time.now.round}" }

let(:car1) { { name1: name1, car_model: testcase['Toyota'] } }

let(:car2) { { name2: name1 } }

所以 name1 现在也是一个惰性变量,在调用时初始化,如果不是 car1,那么就是 car2。

如果 Time.now 有问题,您可以将 name1 的值保留为 testcase['Car'],然后只插入 Time.now 的值。

关于ruby - Rspec - 在另一个 let 语句中使用 let 语句中定义的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51576994/

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