测试Rails模型验证

时间:2012-01-02 17:37:53

标签: ruby-on-rails testing

有很多测试RoR模型验证的例子。甚至在多个模型中保持测试干燥。但是,它不是测试已经测试过的Rails吗?

@user = User.make
@user.name = nil

@user.should_not be_valid

是否测试Rails验证是否有效?

3 个答案:

答案 0 :(得分:7)

  

是否测试Rails验证是否有效?

重点是它测试您的模型验证名称的存在。事实上,它实际上测试了Rails验证的工作原理,Rspec的工作原理,Ruby的工作原理,操作系统的工作原理,以及物理规则没有突然改变,这一点也不重要。

答案 1 :(得分:2)

重点是您测试模型是否正在使用验证。不过,我同意你的看法,你的例子测试验证本身,测试也有些含糊不清。

如果您使用的是shoulda gem,则可以使用should validate_presence_of(:name)

答案 2 :(得分:1)

考虑一下程序中调用update_attribute的方法(update_attribute跳过验证)。调用该方法会使对象处于无效状态,但数据库仍会更新。使用有效?/无效?可以帮助你抓住这种情况。