だから私の状況は次のとおりです:私はそのような同じ構造を持つ2つのモジュールを持っています:
module Module1
class Config
def fee_rate
2
end
end
end
たとえば、Module2 には、値が異なるだけで、fee_rate メソッドを持つクラス Config があります (これらは実際には Rails エンジンに実装されていますが、問題にはなりません)。
次に、私のモデルは Module1 または Module2 のいずれかを使用して、次のような手数料率の値を取得できます。
def config
@config ||= "#{module_name.titleize}::Config".constantize.new
@config
end
def get_value
config.get_fee * some_other_value
end
私がテストしようとしているのは、 get_fee 関数が正しいクラスで呼び出されたかどうかです:
"#{model.module_name.titleize}::Config".constantize.any_instance.expects(:get_fee).at_least_once
model.get_value
そして、get_value を呼び出す行で、次のエラーが発生します - nil:NilClass の未定義メソッド `*'。私は今完全に迷っているので、助けやアイデアをいただければ幸いです。