【80日目】【1日20分のRailsチュートリアル】【第8章】テスト用ユーザーを準備する
今日は「8.2.4 レイアウトの変更をテストする」から。
8.2.4 レイアウトの変更をテストする
- ログイン用のパスを開く
- セッション用パスに有効な情報をpostする
- ログイン用リンクが表示されなくなったことを確認する
- ログアウト用リンクが表示されていることを確認する
- プロフィール用リンクが表示されていることを確認する
上記の操作手順をテストで記述して確認できるようにするそう。
上の変更を確認するためには、テスト時に登録済みユーザーとしてログインしておく必要があります。
(中略)
Railsでは、このようなテスト用データをフィクスチャで作成できます。
フィクスチャがよく分からないけどとりあえずテスト用データ作成する。
図6.8のデータモデルをもう一度見てみると、password_digest属性をユーザーのフィクスチャに追加すればよいことがわかります。そのために、digestメソッドを独自に定義することにします。
パスワードの文字列をそのままデータベースに保存はしていなくて、password_digest
属性を指定する必要があるからdigest
メソッドが必要ってことかな。
フィクスチャ向けのパスワードのハッシュ値生成メソッドを作成する。
app/models/user.rb
: # 与えられた文字列のハッシュ値を返す def User.digest(string) cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost BCrypt::Password.create(string, cost: cost) end
リスト8.18のdigestメソッドができたので、有効なユーザーを表すユーザーフィクスチャを作成できるようになりました (リスト8.19)。
test/fixtures/users.yml
michael: name: Michael Example email: michael@example.com password_digest: <%= User.digest('password') %>
文章読み込んでたら時間かかったので今日はここまで。
今日の作業時間は【21分】。
次は「8.2.4 レイアウトの変更をテストする」のテストを作成するところから。