gpt4 book ai didi

ruby - 将参数传递给 rspec 共享示例

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:58 27 4
gpt4 key购买 nike

我有一个返回结果集的过程,我想使用 rspec 测试该结果集的有效性。该过程将根据参数返回不同的结果,但有许多示例对所有参数都是通用的,因此我想创建一组通用示例,我可以针对所有这些示例运行。

我知道首选的做法是使用 let 来构建结果。问题是每个过程需要一两分钟才能生成结果,而我大概有 30 个示例。使用基于不同参数的所有排列,我运行了大约 500 个示例。如果我必须为每个示例重建结果,测试将运行一天以上。

所以我在 before(:all) block 中构建结果并将其分配给如下属性:

RSpec.describe 'Test Description' do
attr_reader :result

before(:all)
@result = build_result({some_parameters})
end

context 'Some context' do
it 'Looks lik a result' do
expect(result.something).to ...
end

it 'Feels lik a result' do
expect(result.something).to ...
end
end
end

也许有比使用属性更好的方法。我想做这样的事情:

RSpec.describe 'Test Description' do
attr_reader :result

before(:all)
@result = build_result({some_parameters})
end

context 'Some context' do
it_behaves_like "A result" result
end
end

在此上下文中使用属性失败。有没有其他方法可以做到这一点?

最佳答案

您可以像这样将参数传递给共享示例:

shared_examples_for "A result" do |argument|
# some tests with argument
end

然后像这样传入my_argument:

it_behaves_like "A result", my_argument

关于ruby - 将参数传递给 rspec 共享示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39626805/

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