gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:33:14 26 4
gpt4 key购买 nike

我知道可以在 ruby​​ 中用 before 和 after 钩子(Hook)装饰方法,但是是否可以对给定方法的每一行都这样做?

例如,我有一个自动化测试,我想验证在每个步骤之后页面上没有显示错误。错误显示为红色 div 并且 Ruby 看不到 raise 或类似的东西,所以我必须手动检查它(还有其他几个用例)。

我知道可以使用 set_trace_func。但我认为这可能带来的问题多于好处,因为它适用于整个调用树(并且需要我自己对其进行过滤)。

更新(澄清):

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

最佳答案

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

这就是大致的操作步骤,具体可以查阅书籍。

关于ruby - 是否可以在 Ruby 中的每一行之后运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199179/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com