1

我正在尝试为binding.remote_pry我的应用程序的所有类中的所有方法添加一个测试环境。

我试试这个:

classes = []
ObjectSpace.each_object { |o| classes << o if o.class == Class }
classes.each do |classe|
    classe.methods.each do |method_name|
        classe.class_eval do
            define_method(method_name.to_sym) do
                @@bindings ||= []
                @@bindings << Thread.new {binding.remote_pry}
                super
            end
        end
    end
end

但是我不知道如何调用super里面的每个方法define_method 我是不是想在这里做一些太疯狂的事情?还有另一种方法吗?提前致谢

4

1 回答 1

-1

您应该使用显式的空参数列表调用它,否则会super尝试从原始方法传递参数,这不适用于define_method. 做就是了:

super()

你应该没事;)

于 2016-09-02T20:12:45.637 回答