Ruby on Rails開発のインターン (Day 19)

こんにちは、皆さん!

5つ目の週がやってた。もうインターンの半分以上が終わった。最近、少しばかり自分がここまでやってきた内容に関して思い返すことがあるが、随分たくさんことを習わせてもらったなと思う。ジェムのGithubのREADMEがどれだけ役に立つのか、Trelloを使ってやることリストを管理するのがどれだけ便利なのか、グーグルマップの実装方法、便利なジェムの存在、そして、RspecとCapybaraを使ったテストなど学んだ内容がとにかく豊富。
ここからもインターンを最大限に活用できるように日々集中して、残りのインターンをやり切りたいと思う。


  • トピック:
  1. Fakerジェムでランダムなデータを作る方法


  • 疑問:


  • 問題:


  • 学習した内容:
  1. Fakerジェムは様々な種類のランダムデータを作ることができ、特にテストを実行する際に役に立つ


  • 今後やってみたいこと:
  1. Fakerで何か面白いものを作る


  • リソース:
  1. GitHub - stympy/faker: A library for generating fake data such as names, addresses, and phone numbers.


Fakerジェムでランダムなデータを作る方法

リソース: GitHub - stympy/faker: A library for generating fake data such as names, addresses, and phone numbers.

これは結構面白いジェムで、使えるランダムデータを作成してくれるという。主な活用方法といえばランダム名前登録またはテスト用の辺が浮かぶ。
職場ではこれをテストの時に使うデータ作成のために使っているのを見かけた。そうすることで、テストされるデータに偏りが出ず、様々なテストがパスするはずの値をいちいち打ち出すことなく使うことができるのだ。

さて、そんな便利なジェムをインストールするには、以下のをGemfileに入れて、

gem 'faker'

bundle installをコマンドで実行するだけ!

そしたら、ランダムデータを使いたいファイルの中でFakerのものを使う下記のようなコードを書くことができる

require 'faker'

Faker::Name.name      #=> "Christophe Bartell"

Faker::Internet.email #=> "kirsten.greenholt@corkeryfisher.info"

例えば、Rspecの中でFakerを使いたいのなら、

# この部分だけはspec_helper.rbに入れた方がいいかもしれない
require 'faker'

RSpec.describe User do
  describe "valid user" do
    it "successfully create a user" do
      user_name = Faker::Name.name
      user = User.new(name: user_name)
      expect(user).to be_valid
    end
  end
end

僕の場合、これで"Harry Stark"という名前が作られた。設定次第でこれを成功とするか失敗とするかはあなた次第だが、僕の場合は苗字と名前の間にスペースがあるだけでいいという設定だったため成功という結果になった。
このコードなら毎回テストを行うたびに異なるユーザーでテストすることができて、テストの信頼性が上がるということだ。

まとめ

今日capybaraテストを職場のプログラムで実行しようとしたが、データの間違ったアクセスが確認されて、そこら辺のデータがどうやってデータベースで管理されているのかわからなかったため、マネージャーに確認してエラー修正をしていこうと思う。
それで、その間、Gemfileをもっと詳しく調べてみたら、Fakerというおもしろいジェムを見つけた。このジェムは本当に様々な値を定義してあって、すぐに使い始めれる気がした。このようなジェムが存在するとは思ってもいなかった(笑)。Railsがどれだけ便利なのか改めて気づいたよ。


ご精読ありがとうございました。では、また次回まで✌



Day 20はこちら↓↓
programming-shop.hatenablog.com


Day 18はこちら↓↓
programming-shop.hatenablog.com