当前是否有一种从多个参数集继承的方法?
我有一个用例,我有一组测试,它们都共享一组默认值,然后其中一半测试共享另一组默认值,另一半共享另一组默认值。
到目前为止,我的解决方法是:
define_params :A_default do |p|
params(:default)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
params(:A)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
end
define_params :B_default do |p|
params(:default)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
params(:B)[:tm].each { |id, val| p.tm.send("#{id}=", val) }
end
然后我的测试根据测试使用inherit: :A_default
或inherit: :B_default
。
我认为,理想的情况是,如果当前没有多个父参数集,则可以使用一种api,并使用某种方法来指示优先级顺序(即,如果A和B父母发生冲突,谁的值将被继承)。 / p>
编辑: 忘记提及还有一些测试也继承A或B,因此使用其特定参数定义A_default或B_default,然后继承default仍然需要我多次定义一些参数。
答案 0 :(得分:1)
不支持多重继承,因此任何答案都是您现有解决方案的编码变体。
但是,由于我似乎添加了一项有用的功能,因此请参见-https://github.com/Origen-SDK/origen/pull/357