![]() |
1
9
我将使用set_var(var),而不是您试图做的事情,属性编写器被假定为可以正常工作。你试图做的是不标准的,对下一个使用你的代码的穷人来说是不明显的(它可能只是你自己)我会抛出一个异常,如果错误的输入发送或一些相当异常的事情发生。 你想要这种行为
=运算符应始终返回传递给它的值。Ruby使用隐式返回,这在编程语言中并不常见。使用时请仔细检查退货
|
![]() |
2
4
更新
这与
更新2:找到解决方案 你可以提出一个例外!
|
![]() |
3
2
此外,根据您的示例,要清理问题,您可以执行以下操作:
查看此项目: Validatable 快速场景:
|
![]() |
4
1
我知道这是对派对的迟到回应。。。 很难知道你想在课堂上做什么。您提到要在保存之前检查它。。。到数据库?文件 如果属性值不正确,您希望发生什么情况? 通过使用布尔返回,可以有效地“隐藏”错误(因为 忘记检查setter的返回值这件奇怪的事情)。 而你可以按照别人的建议去做
你也可以考虑一个IsHealm?方法,就像许多最终得到持久化的类一样。然后save可以检查对象的状态并抛出错误。 底线:
BDD TDD RSpec 获得所需的类“契约”,该类需要出现以支持所需的行为。 |