2013-05-07 21 views
13

ile benzersizliğini doğrulamak benim Çizgi modelinde bu varRSpec kapsamı

validates :home_team, :uniqueness => { :scope => [:visiting_team, :event_datetime], 
:message => "** DOUBLE EVENT **" } 

benim spec içinde bu hatayı alıyorum

describe Line do 
    it { should validate_uniqueness_of(:home_team).scoped_to(:visiting_team, :event_datetime) } 

...

Hataları bu var:

1) Line 
Failure/Error: 

it { should validate_uniqueness_of(:home_team).scoped_to(:visiting_team, :event_datetime) } 
    Did not expect errors to include "has already been taken" when home_team is set to "arbitrary_string", got error: 
# ./spec/models/line_spec.rb:7:in `block (2 levels) in <top (required)>' 

Bunun neden başarısız olduğu konusunda herhangi bir fikrin var mı?

cevap

28

Ben teklik varsayılan hata mesajı “çoktan alındı” olduğunu

it { should validate_uniqueness_of(:home_team).scoped_to(:visiting_team, :event_datetime).with_message("** DOUBLE EVENT **") } 

geçmesi Bunu yapmak yapmak gerekir düşünüyorum.

+0

Merhaba Roy :) Şimdi anladım ... Sanırım yeni bir yaklaşım denemek zorundayım. 1) satır /başarısızlık: NoMethodError: tanımsız yöntemi 'değişikliği' için {: HOME_TEAM) .scoped_to (: visiting_team, event_datetime) .with_message ("** ÇİFT OLAY **") (validate_uniqueness_of gerekir} 1: Fixnum # ./spec/models/line_spec.rb:7:in 'bloğu (2 seviye) <üstte (gerekli)> ' – slindsey3000

+0

Bu benim için de işe yaradı, ama ne olursa olsun benzersizliği doğrulamak isterseniz: -> {home_team.nil? }, bunu nasıl test edersiniz? – Caleb