加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

是否可以在Ruby中的每一行之后运行代码?

发布时间:2020-12-16 20:44:59 所属栏目:百科 来源:网络整理
导读:我知道有可能在ruby中使用挂钩之前和之后修饰方法,但是可以为给定方法的每一行执行此操作吗? 例如,我有一个自动化测试,我想验证每个步骤后页面上没有显示错误.错误显示为红色div,并且对于Ruby不可见或者类似的东西,因此我必须手动检查它(还有其他几个用例).
我知道有可能在ruby中使用挂钩之前和之后修饰方法,但是可以为给定方法的每一行执行此操作吗?

例如,我有一个自动化测试,我想验证每个步骤后页面上没有显示错误.错误显示为红色div,并且对于Ruby不可见或者类似的东西,因此我必须手动检查它(还有其他几个用例).

我知道可能使用set_trace_func.但我认为这可能会带来更多问题而不是好处,因为它可以在整个调用树上运行(并且需要我自己过滤它).

更新(澄清):

我有兴趣拦截在给定方法中执行的所有操作(或调用).这意味着调用了未指定数量的类,因此我不能只截取任何给定的类/方法集.

解决方法

它是,您可以在 The Ruby Programming Language的第8.9节中获得有关如何执行此操作的完整说明.在每次调用方法时运行代码涉及将方法发送到具有method_missing实现的TracedObject类.无论何时收到消息,它都会调用method_missing并执行您为其分配的任何代码. (当然,这是一般追踪).

这是对此过程的一般描述,您可以查阅本书了解详细信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读