我有一个Ruby-Cucumber框架。我需要使用方法method_missing
来避免编写一些重复的函数。我应该在哪里放置method_missing
?在.rb
文件夹下的任何support
文件中?或者它应该进入一些不同的特定文件?
答案 0 :(得分:1)
在method_missing
目录的.rb
文件中以及随后传递给the Cucumber World
的模块中,像任何Cucumber帮助方法一样定义support
:
module MethodMissing
def method_missing(method)
puts "You said #{method}"
end
end
World MethodMissing
然后,您可以在步骤定义中调用缺少的方法。
与任何Cucumber辅助方法一样,method_missing
只应在黄瓜World
上定义。如果您在支持文件的顶层定义它,它将在Ruby顶级对象上定义,并且可以在任何地方使用,这是不显着的,可能会破坏其他代码。
我故意不遵从super
,因为World
没有定义method_missing
,或定义respond_to_missing?
,因为我没有&#39 ; t有任何计划在method(:foo)
上致电World
,但如果您希望在定义method_missing
时始终执行此操作,则可以执行这些操作。