我正在尝试使用RSpec测试Rails 4中的PG数据库约束,但不确定如何设置。
我想做类似这样的事情:
before do
@subscriber = Marketing::Subscriber.new(email: "subscriber@example.com")
end
describe "when email address is already taken" do
before do
subscriber_with_same_email = @subscriber.dup
subscriber_with_same_email.email = @subscriber.email.upcase
subscriber_with_same_email.save
end
it "should raise db error when validation is skipped" do
expect(@subscriber.save!(validate: false)).to raise_error
end
end
当我运行这个程序时,它确实生成了一个错误:
。
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint
然而,测试仍然失败。
有没有正确的语法可以使测试通过?