これは簡単な質問だと思いますが、答えを見つけるのに苦労しました。Railsプロジェクトで認証用のデバイスを設定しましたが、うまく機能しています。パスワードの検証とログイン要件もカスタマイズしました。具体的には、ユーザー名または電子メールのいずれかでログインできる必要があり、電子メールでは大文字と小文字が区別されないようにする必要があります。
モデル仕様でこれをテストするにはどうすればよいですか?具体的にはテスト:
- 電子メール(すべて下位)でログインし、パスワードは有効です
- メール(すべて上)でログインし、パスワードは有効です
- ユーザー名とパスワードでのログインは有効です
- ユーザー名(ごちゃ混ぜの場合)でログインし、パスワードが無効です
基本的に、ログインの詳細を取り込んで、deviseがそれを認証するかどうかを教えてくれる関数が1つ必要です。しかし、私はそのような関数をデバイスのドキュメントでそのような関数を構築するための例や方法で見つけることができません。
私はそれが実際に機能していると確信しており、私のリクエスト仕様でテストできますが、モデルで定義されているので、モデルテストでもあるはずだと感じています。
私が定期的に見つけた唯一の工夫テストはコントローラーであり、ログインの詳細を必要とせずにユーザーに自動的にサインインするだけなので役に立ちません。