Я бью умственный блок.Может кто-нибудь объяснить мне, как я могу написать спецификационный тест для validate_uniqueness_of?
Или используйте Следует:
before do @user = Factory(:user) end subject { @user } it { should validate_uniqueness_of(:name) }
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
Сократите время с помощью musta:
it "validates uniqueness of name" do FactoryGirl.create(:tag, name: 'unique name') should validate_uniqueness_of(:name) 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