是否可以在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并执行您为其分配的任何代码. (当然,这是一般追踪).
这是对此过程的一般描述,您可以查阅本书了解详细信息. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |