:on_ride_photo
フィールドがブール値であることを確認するテストを書くのに問題があります。
私の検証呼び出し:
validates :on_ride_photo,
inclusion: [true, false]
私のテスト:
it { should validate_presence_of(:on_ride_photo) }
it { should ensure_inclusion_of(:on_ride_photo).in_array([true, false]) }
it { should_not allow_value(4).for(:on_ride_photo) }
it { should_not allow_value('lots').for(:on_ride_photo) }
工場:
factory :coaster do
association :park
name 'Nemesis'
speed 60
height 60
length 160
inversions 4
on_ride_photo true
lat 52.98694
lng -1.88284
dates_ridden '24th Jul 2013:4, 9th Aug 2009:7'
powered false
end
エラー:
失敗:
1) コースターの検証では、on_ride_photo を「lots」に設定することを許可しないでください 失敗/エラー: { should_not allow_value('lots').for(:on_ride_photo) } on_ride_photo が「lots」に設定されている場合に予想されるエラー、エラーはありません # ./spec/models/coaster_spec.rb:98:in `ブロック (3 レベル) in '
2) コースターの検証では、on_ride_photo を 4 に設定することはできません。失敗/エラー: { should_not allow_value(4).for(:on_ride_photo) } coaster_spec.rb:97:in `ブロック (3 レベル) in '
3) Coaster の検証では、電源を「yes」に設定することは許可されません./spec/models/coaster_spec.rb:102:in `ブロック (3 レベル) in '
4) コースターの検証には on_ride_photo を設定する必要があります 失敗/エラー: it { should validate_presence_of(:on_ride_photo) }リスト内 (nil)"] # ./spec/models/coaster_spec.rb:95:in `ブロック (3 レベル) in '
5) コースターの検証では、powered in [true, false] が含まれていることを確認する必要があります./spec/models/coaster_spec.rb:100:in `ブロック (3 レベル) in '
6) コースターの検証では、電源を 4 に設定することは許可されません。失敗/エラー: { should_not allow_value(4).for(:powered) } 電源が 4 に設定されている場合に予想されるエラー、エラーはありません # ./spec/models/ coaster_spec.rb:101:in `ブロック (3 レベル) in '
7) コースターの検証では、[true, false] に on_ride_photo が含まれていることを確認する必要があります。 ./spec/models/coaster_spec.rb:96:in `ブロック (3 レベル) in '
:powered もブールフィールドである必要があるため、同じテストを行っているため、テストエラーにも表示されます。