rspec模型测试唯一性

rspec model test uniqueness

validates_uniqueness_of 折旧后使用 rails 4 进行测试的正确语法是什么?

在我的模型中...

# prior to Rails 4
validates_uniqueness_of :number

# Rails 4
validates :number, uniqueness: true

在我的测试文件中...

# prior to rails 4
it {should validate_uniqueness_of(:number)}

此测试失败...

# this fails but with the correct error message expected
it "validates the uniqueness of number" do
  Fabricate(:wo, number: "494949")
  expect{Fabricate.build(:wo, number: "494949")}.to raise_error(ActiveRecord::RecordInvalid, "Validation failed: Number has already been taken")
end

我做错了什么?

调用 build 实际上不会 运行 验证。试试 Fabricate(:wo, number: "494949").