gpt4 book ai didi

ruby-on-rails - 带有遗留只读数据库的 Factory Girl

转载 作者:行者123 更新时间:2023-11-28 20:54:35 26 4
gpt4 key购买 nike

我正在为链接到只读遗留数据库的应用程序设置测试。

我有 2 个模型 ProductSpecification 和 Stock。 Stock 模型正在访问遗留数据库中的只读数据。

class ProductSpecification < ActiveRecord::Base
belongs_to :stock
validates :stock_id, uniqueness: true, presence: true

def stock_name
stock.name
end
end

class Stock < ActiveRecord::Base
def readonly?
@readonly = true
end
end

我需要使用股票名称设置工厂,但在 ProductSpecification 中添加 stock_name 编写器方法违反了 Stock 是只读的事实。

为了解决这个问题,我猴子修补了工厂文件中的 ProductSpecification。

class ProductSpecification < ActiveRecord::Base
def stock_name= name
# the stock table is read only to a legacy database
# this monkey patch allows a stock name to be set without adding stock
end
end

FactoryGirl.define do
factory :product_specification do
sequence(:stock_id)
sequence(:stock_name){ |n| "Stock Name #{n}" }
end
end

这允许我设置一个纯粹用于测试的 stock_name。

这里有更好的做法吗?有没有我没有考虑过的猴子补丁的替代解决方案?

最佳答案

我会在模型中尝试 attr_readonly :important_type_thingie

关于ruby-on-rails - 带有遗留只读数据库的 Factory Girl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30215763/

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