0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails Tutorial 9章の最後のテストでrememberが見つからない

Last updated at Posted at 2019-11-07

はじめに

個人的にRails Tutorialの第9章で書かれている通りにしてもうまく動かなかったので、つまづいた点を備忘録の意味も兼ねて書いておく。初めての記事なので、ミス等ある場合は教えていただけると大変ありがたいです。

開発環境
OS    :  Ubuntu 18.04
Ruby :  2.6.5
Rails  :  6.0.0

永続的セッションのテストでrememberが見つからない

9.3.2の永続的セッションのテストを行うと、次のようなエラーが出た。

DRb::DRbRemoteError: undefined method `remember' for #<SesseionsHelperTest:0x00005612e5bd30c8> (NoMethodError)

app/helpers/sessions_helperにある'remember method'が見つからないとのことなので、そのmethodを含む'Sessionshelper Module'をincludeして対応。

test/helpers/sessions_helper_test.rb
require 'test_helper'
require './app/helpers/sessions_helper'   # 追記

class SesseionsHelperTest < ActionView::TestCase

  include SessionsHelper                  # 追記

  def setup
    @user = users(:michael)
    remember(@user)
  end

  test "current_user returns right user when session is nil" do
    assert_equal @user, current_user
    assert is_logged_in?
  end

  test "incurrent user returns nil when remember digest is wrong" do
    @user.update_attribute(:remember_digest, User.digest(User.new_token))
    assert_nil current_user
  end
end

勝手にテスト時はhelperは全て読み込むものだと思いこんでいたので、設定が悪いのかと思い、的はずれな方向へ行ってしまった。

参考

[Ruby on rails チュートリアル] (https://railstutorial.jp/chapters/advanced_login?version=5.1#cha-advanced_login)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?