SO ...Rubyでは、クラス変数を混合モジュールの動的に作成されたクラスメソッドに渡す方法は?
私はモジュールを持っている...
module Foo
class_methods do
def bar(*fields)
fields.each do |field|
define_method("set_#{field}=") do |value|
# nil check, other checks and validations
end
end
end
end
が...このモジュールは、自分のアプリケーションで私のモデルのいくつかで使用されますが、今のところ、私はそれをテストしようとしています...
let(:entity_type) do
class TestClass
def initialize(value)
@field_value = value
end
include Foo
bar @field_value
self
end
end
let(:entity) { entity_type.new(:some_field) }
...しかし、私は私のテストでブレークポイントを入れて、エンティティのメソッドを見たとき、私は「SET_ =」の代わりに「set_some_field =」を参照してくださいと私はいくつかのバリエーションを試してみましたシンボル、クラスインスタンス変数などを使用しています。どんな助けも大歓迎です!
優れた答え。 –