在我的rails(4.2.1)应用中,我有一个带有整数字段Post
的{{1}}模型。创建帖子时,我将一个字符串传递给整数字段。我预计会出现错误,但记录是在foo
设置为foo
的情况下创建的。为什么我没有收到错误?
nil
实际上,我想为Post编写一个失败的测试,然后我会将foo改为enum以使测试通过。我很惊讶测试没有引起错误。
答案 0 :(得分:6)
它是一个"功能"数据库。此时Rails不知道属性的类型。如果您希望它只接受整数,则可以使用validates_numericality_of :foo
。
如果您希望测试失败而不是枚举,则可以执行以下操作
expect { subject.foo = 'invalid value' }.to raise_exception(ArgumentError)
只要它不是枚举就会失败。