这两个invokation都确保模型无效。`should be_invalid`和`should_not be_valid`之间是否有功能上的区别?
有什么功能差异吗?两者之间是否存在普遍的最佳做法?
这两个invokation都确保模型无效。`should be_invalid`和`should_not be_valid`之间是否有功能上的区别?
有什么功能差异吗?两者之间是否存在普遍的最佳做法?
我意识到没有功能差异。
“最佳实践”是根据规范使用任何最具可读性和通信性的东西。
只是一个 '结冰' 为开发:)同:
flag = true
if not flag
...
end
unless flag
...
end
有一个在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为背景上下文。 –