今日、Rails アプリの機能テストを書き始めました。RESTful 認証プラグインを使用しています。私はいくつかの紛らわしいことに遭遇しました.誰かが私のために明確にしてくれることを願っています.
1) Rails アプリのほとんどの機能で認証が必要なため、クイック ログイン機能を作成しました。
def login_as(user)
@request.session[:user_id] = user ? user.id : nil
end
この関数で見られる問題は、基本的に認証を偽造することです。これについて心配する必要がありますか?本当の認証方法をどこかでテストする限り、このルートに進んでも大丈夫かもしれません。あるいは、これはひどい習慣かもしれません。
2) 2 つ目の紛らわしい点は、機能テストのいくつかの場所で、完全な認証プロセスを実行する必要があることです。ユーザーがアクティブ化されると、do_activate メソッドでユーザーの初期オブジェクトをいくつか作成します。それが理にかなっている場合、これは学生アプリケーション用の空白のノートブック オブジェクトとペン オブジェクトの作成に類似しています。
したがって、アプリケーションを適切にテストするには、ユーザーがそのアクティブ化状態に到達して、それらのオブジェクトが作成されるようにする必要があります。現在、Factory Girl を使用してユーザーを作成し、上記の login_as 関数を呼び出して認証を偽装しています。
もう 1 つのオプションは、完全な認証シーケンスをスキップして、Factory Girl で空白のオブジェクトを作成することだと思います。適切な認証を別の場所でテストできます。
どう思いますか?適切な手順を実行する必要がある場合、以下のコードで do_activate 関数が呼び出されないのはなぜですか?
user = Factory.create(:user)
user.active = 1
user.save
ありがとうございました!