この検証を使用したユーザーモデルがあります
validates :name, :lastname, :format => {:with => /^[a-zA-Z]+$/, :message => 'Only letters and spaces allowed.'}
適切にテストする方法がわかりません。
a-zA-z文字の配列から10文字で作成されたランダムな文字列を返す関数を実行しました。
def get_random_name
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split('').shuffle[0..10].join
エンドエンド
次に、仕様を実行するたびに新しい名前を取得します。
正規表現を使用していることをテストしたくありません。これは、動作ではなく実装をテストするためです。また、ハードコードされた1つのケースのみをテストしたくないためです。
私の質問は次のとおりです。本当に必要ですか?それは良いですか、それとも役に立たないですか?その種の検証をテストするためのより良い方法を知っていますか?
編集:別の質問、無効なランダムな名前を生成するのはどうですか?許可された値の外側に少なくとも1つの文字を含むランダムな名前を作成する方法はありますか?すべての無効な値の配列をハードコーディングしてランダム化することはできません。大きすぎるためです。