gpt4 book ai didi

ruby-on-rails - 从模型或 Controller 在 Rails 中断言?

转载 作者:行者123 更新时间:2023-12-03 16:10:36 25 4
gpt4 key购买 nike

如果在开发和测试过程中不变量被破坏,是否有一种内置的方法可以在 Rails 中指定断言,该方法会抛出异常?

编辑:为了清楚起见,我正在寻找可以放置在模型或 Controller 中的断言,而不是用于单元测试的断言。

最佳答案

如果您正在编写测试,则有许多断言函数。但是对于主代码中的断言,没有任何断言,您可以轻松推出自己的断言。

将这样的内容添加到 environment.rb :

class AssertFailure < Exception
end

def assert(message = 'assertion failed')
unless block_given? and yield
raise message
end
end

并在您的 environments/production.rb 中设置为空操作所以开销最小
def assert(message = 'assertion failed')
end

然后,在您的代码中,您可以根据自己的意愿断言:
assert { value == expected_value }
assert('value was not what was expected') { value == expected_value }

value不等于 expected_value并且您没有在生产中运行,将引发异常。

关于ruby-on-rails - 从模型或 Controller 在 Rails 中断言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/489504/

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