rspecでテストしているときに、オブジェクトを反復処理してその属性を変更しようとしています。アイデアは、文字列が長すぎないことをテストすることです(最大255文字)。非常に多いので、コードの繰り返しを避け、オブジェクトの属性を繰り返し処理したいと思います。
私はこの質問のおかげで次のことを思いついた:
[ :city, :email, :first_name, :last_name, :office_name, :street ].each do |attr|
c.send("#{attr}=", long_string)
c.errors[attr].should include "is too long (maximum is 255 characters)"
end
ただし、コンソールには
expected [] to include "is too long (maximum is 255 characters)"
long_stringは実際には1000文字の長さであるため、問題になることはありません。それに応じたモデルでは、上記の各属性の最大長が255であることをすでに確認しています。割り当て中に何か間違ったことをしているのか、それともテストが機能しないのかはよくわかりません。