【发布时间】:2011-11-10 23:41:10
【问题描述】:
到目前为止,我已经构建了一个简单的 Rails 应用程序,其中包含三个继承自 ActiveRecord 的类。我在测试驱动开发方面有点领先,因为我已经编写了需要测试的类。到目前为止,我编写的测试一切顺利。对象正在创建中,属性正在响应,验证都已到位。
当我调用“!”时问题就开始了在我的创建方法上,因为现在对象一直被传递到数据库。而不是我的正常验证拦截无效输入,似乎数据库有机会响应刺激。
到目前为止,我在运行测试时收到的错误是:
ActiveRecord::RecordInvalid: 验证失败:商店太长(最多 11 个字符)
我很高兴收到此错误,但想知道如何在我的测试中更好地计划它。产生上述错误的代码是:
it "should not a accept a department with a shopify shop_id that's over 11 chars" do
long_id = "9" * 12
long_id_department = Department.create!(@attr.merge(:id => [long_id, ""]))
long_id_department.should_not be_valid
end
我认为这一行尤其应该采用其他形式:long_id_department.should_not be_valid
希望大家能对这种形式应该是什么有所了解。
【问题讨论】:
标签: ruby-on-rails ruby activerecord rspec