Как я могу проверить validate_uniqueness_of? - PullRequest
14 голосов
/ 13 января 2011

Я бью умственный блок.Может кто-нибудь объяснить мне, как я могу написать спецификационный тест для validate_uniqueness_of?

Ответы [ 4 ]

19 голосов
/ 03 апреля 2011

Или используйте Следует:

before do
  @user = Factory(:user)
end

subject { @user }

it { should validate_uniqueness_of(:name) }
15 голосов
/ 13 января 2011
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
3 голосов
/ 23 июня 2012

Сократите время с помощью musta:

it "validates uniqueness of name" do
  FactoryGirl.create(:tag, name: 'unique name')
  should validate_uniqueness_of(:name)
end
2 голосов
/ 21 октября 2015
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...