两个调用都确保模型无效。
有任何功能差异吗?这两者之间是否存在流行的最佳做法?
答案 0 :(得分:2)
rspec be_...
匹配器中没有魔力。如果未在rspec中定义匹配器,则只调用be_
之后带有?
符号的任何方法名称。因此be_valid
调用'activerecord / lib / active_record / validations.rb'中定义的方法valid?
,'be_invalid'调用'activemodel / lib / active_model / validations.rb'中定义的invalid?
。以下是后者的源代码:
def invalid?(context = nil)
!valid?(context)
end
所以我猜答案可能不是。
答案 1 :(得分:0)
我没有发现任何功能差异。
“最佳实践”是使用规范中最具可读性和最具沟通性的内容。
答案 2 :(得分:0)
只是一个' icing'对于开发人员:)相同:
flag = true
if not flag
...
end
unless flag
...
end