gpt4 book ai didi

ruby-on-rails - 是否可以在 ruby​​ 中取消定义变量?

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

在 ruby​​ 中,有没有办法在变量或常量定义后“取消定义”?

在我们的 rails 环境中,我们将三个常量之一定义为 true,具体取决于环境:TESTINGDEVELOPMENT生产。然后,在 Controller 代码中,我们使用 defined? 来查看我们是否处于什么环境中,即:defined?制作

现在,我想对某些特定于环境的行为进行单元测试。我最初的尝试是在我的测试中设置适当的常量,然后在拆卸时重置它们。但是,我不知道如何重置 DEVELOPMENTPRODUCTION 以便 defined? 返回 false。

显然,解决方案是除了检查适当的常量是否已定义之外,还检查它是否也为真,但这将导致不得不触及相当多的现有代码。

编辑:我意识到这绝对不是正确的做事方式。唉,改变它是一项不平凡的任务,所以我正在寻找一种简单的方法来对现在的内容进行单元测试。另外,我也很好奇是否可以取消定义变量/常量的低级语言问题。

最佳答案

我找到了 this answer

Object.send(:remove_const, "TESTING")

如果我没记错的话,在这里使用 send 是一种 hack,因为 remove_const 实际上是一个私有(private)方法。您想问自己为什么需要同时定义常量 PRODUCTION、DEVELOPMENT 和 TESTING,而它们实际上是互斥的;这就是为什么我赞成 grepsedawk 的回答。

关于ruby-on-rails - 是否可以在 ruby​​ 中取消定义变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/339181/

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