gpt4 book ai didi

ruby - 在 Rspec 中从命令行传递哈希参数

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:27 24 4
gpt4 key购买 nike

需要一些东西,可以像下面这样工作来保持 rspec DRY:

rspec spec/features/users_spec.rb:12 -fd tab: 'Home'

使用,

ruby 1.9.3
rspec 2.6.4
Rails 3.1.6
gem 'capybara', '2.1.0'
gem 'selenium-webdriver', '2.43.0'

实际上,我有多个“it_behaves_like”超过 50 个具有相同重复代码的多个组合,如下所示。

下面只是一个解释我的问题的基本示例:

describe 'Login' do

primary_admin = { acc_type: 'admin', user_type: 'primary' }
secondary_admin = { acc_type: 'admin', user_type: 'secondary' }
primary_admin = { acc_type: 'non-admin', user_type: 'primary' }
secondary_admin = { acc_type: 'non-admin', user_type: 'secondary' }

tab = { tab: 'Home' }

it_behaves_like 'Authorized User', primary_admin.merge(tab)
it_behaves_like 'Authorized User', secondary_admin.merge(tab)
it_behaves_like 'Authorized User', primary_admin.merge(tab)
it_behaves_like 'Authorized User', secondary_admin.merge(tab)

tab = { tab: 'My Profile' }

it_behaves_like 'Authorized User', primary_admin.merge(tab)
it_behaves_like 'Authorized User', secondary_admin.merge(tab)
it_behaves_like 'Authorized User', primary_admin.merge(tab)
it_behaves_like 'Authorized User', secondary_admin.merge(tab)

tab = { tab: 'Security' }

it_behaves_like 'Authorized User', primary_admin.merge(tab)
it_behaves_like 'Authorized User', secondary_admin.merge(tab)
it_behaves_like 'Authorized User', primary_admin.merge(tab)
it_behaves_like 'Authorized User', secondary_admin.merge(tab)

end

对于多个选项卡,需要重复与上面相同的代码。

如果可能的话,我想从控制台传递“tab”参数。请告知是否有可能或以任何其他方式减少此重复代码。

注意:我想将这些测试套件保留在上面的不同部分,以便在需要时通过使用行号轻松选择需要的测试套件。

最佳答案

你可以使用环境变量

env TAB=home rspec spec/features/users_spec.rb:12

然后,在你的代码中

tab = { tab: ENV['TAB'] }

关于ruby - 在 Rspec 中从命令行传递哈希参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48220241/

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