我遇到了很多与 undefined variable 相关的生产问题。如何在 Ruby 文件中查找所有 undefined variable ?是否有任何 gem/脚本可以扫描代码文件并检测可能的问题。这样我就可以在生产部署或接受拉取请求之前测试代码。
最佳答案
这真的做不到。 可以定义变量的方法太多了。无论出于何种原因,也有相同数量的方法可以将应定义的变量设置为 nil
。
您可以在启用警告的情况下运行 Ruby(命令行上的 -w
),它会强烈提示这些事情。它只会提示代码执行路径上的变量,因此如果有部分您没有执行,您将不会收到警告。
这就是为什么拥有一个详尽测试分支的测试套件对于消除此类错误至关重要的原因。如果您的代码中有 if
,则需要对其进行两次测试。如果您有两个 if
子句,则可能需要三个或四个。任何带有 case
的东西都需要测试所有分支。对于包含大量业务逻辑的项目来说,这可能是一项大量工作。
由于 Ruby 本身并未编译,因此它无法在代码运行之前检测到此类问题。根据代码其他部分的影响,文件中的内容和实际执行的内容可能截然不同。在 C 或 Rust 等更保守的语言中,情况并非如此。
关于ruby-on-rails - 在 Ruby 文件中查找所有 undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743989/