gpt4 book ai didi

ruby-on-rails - 在 rails 初始化程序运行之前运行 rspec "before" block

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

我想运行一个 rspec before block 来在 Rails 初始化器运行之前设置一些东西,这样我就可以测试初始化​​器应该做什么。这可能吗?

最佳答案

如果您的初始化程序中的逻辑足够复杂,则应该对其进行测试,您应该将其提取到一个帮助程序中,您可以在不处于初始化程序上下文的情况下隔离和测试它。

complex_initializer.rb

config.database.foo = calculate_hard_stuff()
config.database.bar = other_stuff()

您可以将其提取到可测试的帮助程序 (lib/config/database.rb)

module Config::DatabaseHelper
def self.generate_config
{:foo => calculate_hard_stuff, :bar => other_stuff)
end

def calculate_hard_stuff
# Hard stuff here
end
end

...然后只需在初始化程序中连接配置数据

db_config_values = Config::DatabaseHelper.generate_config
config.database.foo = db_config_values[:foo]
config.database.bar = db_config_values[:bar]

...并在单独的测试中测试复杂的配置确定/计算,您可以在其中隔离输入。

describe Config::DatabaseHelper do
describe '.calculate_hard_stuff' do
SystemValue.stubs(:config => value)
Config::DatabaseHelper.calculate_hard_stuff.should == expected_value
end
end

关于ruby-on-rails - 在 rails 初始化程序运行之前运行 rspec "before" block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7557636/

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