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

前端之家收集整理的这篇文章主要介绍了是否可以在Ruby中的每一行之后运行代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有可能在ruby中使用挂钩之前和之后修饰方法,但是可以为给定方法的每一行执行此操作吗?

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

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

更新(澄清):

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

解决方法

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

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

原文链接:https://www.f2er.com/ruby/274022.html

猜你在找的Ruby相关文章