如何测试validate_uniqueness_of?

发布于 2025-02-08 10:45:24 字数 57 浏览 2 评论 0原文

我正在击中一个精神障碍。谁能向我解释如何为validate_uniqueness_of编写规格测试?

I'm hitting a mental block. Can anyone explain to me how I can write a spec test for validate_uniqueness_of?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟燃烟灭 2025-02-15 10:45:24

或使用应该使用:

before do
  @user = Factory(:user)
end

subject { @user }

it { should validate_uniqueness_of(:name) }

Or use Shoulda:

before do
  @user = Factory(:user)
end

subject { @user }

it { should validate_uniqueness_of(:name) }
断舍离 2025-02-15 10:45:24
class Foo < ActiveRecord::Base
  validates_uniqueness_of :name
end

# spec
describe Foo do
  it "should have a unique name" do
    Foo.create!(:name=>"Foo")
    foo = Foo.new(:name=>"Foo")
    foo.should_not be_valid
    foo.errors[:name].should include("has already been taken")
  end
end
class Foo < ActiveRecord::Base
  validates_uniqueness_of :name
end

# spec
describe Foo do
  it "should have a unique name" do
    Foo.create!(:name=>"Foo")
    foo = Foo.new(:name=>"Foo")
    foo.should_not be_valid
    foo.errors[:name].should include("has already been taken")
  end
end
一萌ing 2025-02-15 10:45:24

使其与应该的杂志短:

it "validates uniqueness of name" do
  FactoryGirl.create(:tag, name: 'unique name')
  should validate_uniqueness_of(:name)
end

Make it shorter with Shoulda:

it "validates uniqueness of name" do
  FactoryGirl.create(:tag, name: 'unique name')
  should validate_uniqueness_of(:name)
end
长梦不多时 2025-02-15 10:45:24
class User < ActiveRecord::Base
  validates_uniqueness_of :name
end


it "should validate uniqueness of name" do
  user1 = FactoryGirl.create(:user)
  user1.save
  user2 = FactoryGirl.build(:user)
  expect { user2.save! }.to raise_error(
    ActiveRecord::RecordInvalid
  )      
end
class User < ActiveRecord::Base
  validates_uniqueness_of :name
end


it "should validate uniqueness of name" do
  user1 = FactoryGirl.create(:user)
  user1.save
  user2 = FactoryGirl.build(:user)
  expect { user2.save! }.to raise_error(
    ActiveRecord::RecordInvalid
  )      
end
書生途 2025-02-15 10:45:24

如果您关注“ nofollow noreferrer”>使用这样的东西:

it { is_expected.to validate(%i[name], uniqueness: { scope: :user_group_id }) }

it { is_expected.to validate_uniqueness_of(:name).scoped_to(:user_group_id) }

In case you follow rubocops ImplicitExpect you might what to use something like this:

it { is_expected.to validate(%i[name], uniqueness: { scope: :user_group_id }) }

or

it { is_expected.to validate_uniqueness_of(:name).scoped_to(:user_group_id) }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文