在方法上指示布尔值的替代方法

Alternative ways to indicate a boolean value on a method

我目前正在尝试重构一些重复代码。有一句话特别让我头疼:

some_class = double("some_class", some_method?: true)

我需要用变量名替换 some_method。但是,以下将不起作用。下面只是我正在尝试做的一个例子。

some_method = unique_method
some_class = double("some_class", some_method?: true)

有谁知道其他的写法:

some_method? # where some_method is a var. 

我需要能够打电话给

some_class.some_method? 

对于我的测试用例。

非常感谢任何帮助。提前谢谢你。

用字符串包围它应该没问题,或者您可以使用 :some_method? => value 语法。

def some_method?
  puts "I am some_method?  True"
end

some_hash_key = {:some_method? => true}
send(:some_method?)
my_variable = :some_method?
send(my_variable)          
p some_hash_key

好的..所以在一天结束时,上面的工作..这是我正在尝试做的一个工作示例..我正在使用 lambda 来模拟函数

some_method_one = lambda { return }
some_method_one = lambda { return }

picked_method = some_method_one
some_class = double("some_class", picked_one?: true )
some_class.picked_one? # this returns true

这段代码完全过于简化了。我打算做的(还没有写完逻辑)是在rspec中创建一个shared_examples_for。我有 4 个方法将使用相同的逻辑进行测试,因此我需要将方法作为变量传递。希望这是有道理的,并帮助别人.. :-)