我在编写测试时遇到问题,以确保字段: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设置为 “地段” 失败/错误:{should_not allow_value('lots')。for(:on_ride_photo)} 当on_ride_photo设置为“lots”时出现预期的错误,没有错误 './spec/models/coaster_spec.rb:98:in'块(3级)'
2)过山车验证不应允许on_ride_photo设置为4 失败/错误:它{should_not allow_value(4).for(:on_ride_photo)} 当on_ride_photo设置为4时出现预期的错误,没有错误 './spec/models/coaster_spec.rb:97:在'
中的块(3级)3)过山车验证不应允许将电源设置为“是” 失败/错误:{should_not allow_value('yes')。for(:powered)} 通电时出现的预期错误设置为“是”,没有错误 './spec/models/coaster_spec.rb:102:在'
中的块(3级)4)过山车验证应该要求设置on_ride_photo 失败/错误:它{should validate_presence_of(:on_ride_photo)} 当on_ride_photo设置为nil时,预期错误包括“不能为空”,出现错误:[“on_ride_photo未包含在列表中 (零)”] #./spec/models/coaster_spec.rb:95:在'
中的块(3级)5)过山车验证应确保包含上电[true, 假] 失败/错误:它{should ensure_inclusion_of(:powered).in_array([true,false])} [true,false]与验证中的数组不匹配 './spec/models/coaster_spec.rb:100:在'
中的块(3级)6)过山车验证不应允许将供电设置为4 失败/错误:{should_not allow_value(4).for(:powered)} 通电时预期的错误设置为4,没有错误 #./spec/models/coaster_spec.rb:101:in'块(3级)in'
7)过山车验证应确保包含on_ride_photo [真假] 失败/错误:它{should ensure_inclusion_of(:on_ride_photo).in_array([true,false])} [true,false]与验证中的数组不匹配 #./spec/models/coaster_spec.rb:96:在'
中的块(3级)
:powered也应该是一个布尔字段,所以我对它进行了相同的测试,因此它也出现在测试错误中。