True
文字列でFalse
はないため、%wは使用しないでください。
it { should ensure_inclusion_of(:private).in_array([true, false]) }
更新-2014年4月10日
この検証は、Shouldaの現在のバージョンでは機能せず、この最近のコミットに従って、修正されませんが、代わりに例外が発生します。
true, 1, '1', 't', 'T', 'true', 'TRUE'
ブールフィールドに割り当てられた値はすべてtrue(によって設定)またはfalse(他のものによって設定)のいずれかにキャストされるため、ブールフィールドをテストするための私の好ましいアプローチは次のとおりです。
データベースでnullを許可するブール値の場合-テストは不要であり、可能な値はすべて有効です。
データベースでnullを許可しないブール値の場合-モデルにが設定されているit { should_not allow_value(nil).for(:field)
場合に渡されるブール値を使用しますvalidates :field, inclusion: { in: [true,false] }