5
Help us understand the problem. What are the problem?

posted at

updated at

Ruby on Rails チュートリアル setupメソッド users(:michael) 10.11: 編集の成功に対するテスト

def setup
  @user = users(:michael)
end

usersって何だっけ?なんで:michealを引数にして呼び出せるの?

と思い、調べました。

結論:users.yml を参照しています。

Ruby on Rails チュートリアルを参照すると、

user = users(:michael)

上のusersはfixtureのファイル名users.ymlを表し、:michaelというシンボルはリスト 8.22のユーザーを参照するためのキーを表します。

また、users.yml は下記のようになっています。

michael:
  name: Michael Example
  email: michael@example.com
  password_digest: <%= User.digest('password') %>

有効なユーザー用のfixtureを作成できたので、テストでは次のようにfixtureのデータを参照できるようになります。

user = users(:michael)

また、10章では、users.yml を使用して、

 test "successful edit" do
    get edit_user_path(@user)
    assert_template 'users/edit'
    name  = "Foo Bar"
    email = "foo@bar.com"
    patch user_path(@user), params: { user: { name:  name,
                                              email: email,
                                              password:              "",
                                              password_confirmation: "" } }
    assert_not flash.empty?
    assert_redirected_to @user
    @user.reload
    assert_equal name,  @user.name
    assert_equal email, @user.email
  end

このようにテストを行っています。

参考になった記事

Ruby on Rails チュートリアル 8章
https://railstutorial.jp/chapters/basic_login?version=5.1#cha-basic_login

また、自分の記事はゴミ記事なんだろうと思って
新しくQiitaでまとめることはあまりしないようにしようかと思っていたけれど、下記記事をよんで
・自分用の備忘録として残しておくため
また、きっとグーグルが検索の結果ゴミ記事がでてこないようにしてくださると思うので、たくさん書いて練習していきたい

また、このまとめ記事がとても読みやすいかったので、以下画像のようにするとMarkdownが見れました。

無題.png

Markdownを活用するなどして、見やすい、読みやすい記事を書いていきたいです。

追記:全画面でプレビューを確認する。

無題2.png

上記画像の赤枠の箇所をクリックすると、全画面でプレビューを見ることができるので、確認のときに便利です。

a

とか

a

とか

  • a
  • b
  • c

a

1

a

aa

Markdown練習


  1. ジャンプ 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?