如何做到这一点?无法在线找到任何示例...(使用rspec 2.5.0
& rails 3.0.5
)
答案 0 :(得分:10)
在shoulda-matchers
:http://rubydoc.info/github/thoughtbot/shoulda-matchers/master/frames
答案 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)
不确定这是否正是您要查找的内容,但您可以在save
或update
@widget.save
#untested, but this should be close
@widget.errors.full_messages.include?("validation message you are looking for").should be true
但老实说,这可能不是你需要在单元测试中测试的东西(如果那是你放置它们的地方)。您基本上复制了Rails已经为您完成的单元测试。在黄瓜集成测试中检查视图中的错误消息会更合适。