我有一个 Ruby-Cucumber 框架。我需要使用该方法method_missing
来避免编写一些重复的函数。我应该把我的放在哪里method_missing
?在文件夹.rb
下的任何文件中support
?还是应该放在一些不同的特定文件中?
问问题
74 次
1 回答
1
在目录中的文件和模块中定义method_missing
任何 Cucumber 辅助方法,然后将其传递给Cucumber:.rb
support
World
module MethodMissing
def method_missing(method)
puts "You said #{method}"
end
end
World MethodMissing
然后,您可以在步骤定义中调用缺失的方法。
像任何 Cucumber 辅助方法一样,method_missing
应该只在 Cucumber 上定义World
。如果您在支持文件的顶层定义它,它将在 Ruby 顶层对象上定义并且随处可用,这是不简约的并且可能会破坏其他代码。
我故意不遵守super
,因为World
不定义method_missing
或定义respond_to_missing?
,因为我没有任何计划调用method(:foo)
,World
但是如果您更愿意在定义时始终执行这些操作,则可以执行这些操作method_missing
。
于 2016-08-31T13:24:30.023 回答