1

テスト環境のフィクスチャには FactoryGirl を使用し、認証には Devise を使用しています。これまでは、Devise がユーザーフィクスチャを初期化するために提供する password= メソッドに依存してきました。これにより、ユーザーにパスワードを簡単に設定できます。

ここで、password= 関数を繰り返さずにパスワードを初期化する必要があります。

私は 2 つのアプリケーションで同じモデルを共有しています。2 つ目は、認証が 0 (ただし承認) の Sinatra アプリです。ユーザーはそこにいて、Devise ロジック (最初のアプリである Rails アプリからの依存関係) に依存することなく、それにアクセスしてテストしたいと考えています。ここまでは順調ですね。

つまり、モデル スペックは 2 番目のアプリでも実行する必要があります。また、パスワードを適切に初期化しないと、近い将来、つまずきに遭遇する可能性があります。おそらく 2 番目のアプリではパスワードが必要になることはありませんが、ユーザーを必要とする仕様は実行する必要があります (ユーザーにはパスワードが必要です)。Devise ロジック (および password=) に依存せずに、テスト ユーザーに有効なパスワードを定義することは可能ですか?

そして、encrypted_pa​​ssword フィールドにランダムな文字列を入力したくないと思います。これは、2 番目のアプリ ファクトリで既に行っていることですが、両方のアプリケーションでファクトリ定義を 1 つだけにしたいため、暗号化されていないパスワードは ' qwerty' 人間が読める形式で、Rails アプリのコンテキストで有効です。

4

0 に答える 0