如何在Rspec中指定validates_uniqueness_of?

时间:2011-03-11 16:16:06

标签: ruby-on-rails-3 rspec2

如何做到这一点?无法在线找到任何示例...(使用rspec 2.5.0& rails 3.0.5

3 个答案:

答案 0 :(得分:10)

答案 1 :(得分:6)

before(:each) do
  @attr = { :bar => "foobar" }
end

it "should reject duplicate bar" do
  Foo.create!(@attr)
  duplicate_bar = Foo.new(@attr)
  duplicate_bar.should_not be_valid
end

答案 2 :(得分:0)

不确定这是否正是您要查找的内容,但您可以在saveupdate

之后查看错误消息
@widget.save
#untested, but this should be close
@widget.errors.full_messages.include?("validation message you are looking for").should be true

但老实说,这可能不是你需要在单元测试中测试的东西(如果那是你放置它们的地方)。您基本上复制了Rails已经为您完成的单元测试。在黄瓜集成测试中检查视图中的错误消息会更合适。