有很多测试RoR模型验证的例子。甚至在多个模型中保持测试干燥。但是,它不是测试已经测试过的Rails吗?
@user = User.make
@user.name = nil
@user.should_not be_valid
是否测试Rails验证是否有效?
答案 0 :(得分:7)
是否测试Rails验证是否有效?
重点是它测试您的模型验证名称的存在。事实上,它实际上测试了Rails验证的工作原理,Rspec的工作原理,Ruby的工作原理,操作系统的工作原理,以及物理规则没有突然改变,这一点也不重要。
答案 1 :(得分:2)
重点是您测试模型是否正在使用验证。不过,我同意你的看法,你的例子测试验证本身,测试也有些含糊不清。
如果您使用的是shoulda gem,则可以使用should validate_presence_of(:name)
。
答案 2 :(得分:1)
考虑一下程序中调用update_attribute的方法(update_attribute跳过验证)。调用该方法会使对象处于无效状态,但数据库仍会更新。使用有效?/无效?可以帮助你抓住这种情况。