【发布时间】:2009-07-29 10:04:41
【问题描述】:
我知道在 ruby 中可以使用 before 和 after 钩子来装饰方法,但是是否可以对给定方法的每一行都这样做?
例如,我有一个自动化测试,我想验证每个步骤之后页面上没有显示错误。错误显示为红色 div,Ruby 看不到 raise 或类似的东西,所以我必须手动检查它(还有其他几个用例)。
我知道使用set_trace_func 可能是可能的。但我认为这可能带来的问题多于好处,因为它适用于整个调用树(并且需要我自己过滤它)。
更新(澄清):
我有兴趣拦截在给定方法内执行的所有操作(或调用)。这意味着调用了未指定数量的类,所以我不能只拦截任何给定的类/方法集。
【问题讨论】:
标签: ruby metaprogramming