週刊Elixirライブラリ2015-11

Elixirのライブラリの解説を週ごとにお届けする記事です。
解説が間違っていた場合には、コメントか@hayabusa333にご連絡くださると嬉しいです。

今回はfakerについて

# faker is 何?
fakerは、テスト用などに擬似的なデータを作るためのライブラリとなります。
他の言語でも同じ名前であるライブラリのためご存知のかたも多いのではないでしょうか?

# 実行環境
OS:OS X Yosemite
Erlang:Eshell V6.5, OTP-Version 18
Elixir:v1.0.4

# fakerの実行を行うための新規プロジェクトの作成

$ mix new my_faker
$ cd my_faker

# Hexにてfakerをインストールするために設定ファイルの記載を行う

$ vim mix.exs

mix.exsの内容は下記となります。

defmodule MyFaker.Mixfile do
  use Mix.Project

  def project do
    [app: :my_faker,
     version: "0.0.1",
     elixir: "~> 1.0",
     build_embedded: Mix.env == :prod,
     start_permanent: Mix.env == :prod,
     deps: deps]
  end

  # Configuration for the OTP application
  #
  # Type `mix help compile.app` for more information
  def application do
    [applications: [:logger, :faker]]
  end

  # Dependencies can be Hex packages:
  #
  #   {:mydep, "~> 0.3.0"}
  #
  #
  # Type `mix help deps` for more examples and options
  defp deps do
    [{:faker, "~> 0.5"}]
    # テスト時のみにデータを作成する場合には下記のように記載してください
    #[{:faker, "~> 0.5", only: :test}]
  end
end

# 依存関係の解決を行います。

$ mix deps.get
$ mix deps.compile

# fakerを使ってみる
今回はfakerを実行するだけで確認できます。
結果として帰ってくる内容は毎回ことなるため下記と同等にならない可能性がありますので注意してください

$ iex -S mix
iex(1)> Faker.Address.country
"Isle of Man"
iex(2)> Faker.Address.time_zone
"Atlantic/Cape_Verde"
iex(3)> Faker.Address.zip      
"35663-5999"
iex(4)> Faker.Avatar.image_url
"http://robohash.org/set_set3/bgset_bg2/bORbOBRg7pnw"
iex(5)> Faker.Code.isbn       
"550378006X"
iex(6)> Faker.Name.name
"Kimberly Simonis"
iex(7)> Faker.Name.first_name
"Fabiola"
iex(8)> Faker.Name.last_name 
"Lubowitz"

# まとめ
今回は他の言語にも同一の名前で存在するライブラリである faker について紹介させていただきました。
テスト用のデータとして適当なものを使うよりは、このようなライブラリを使用してデータを作ってみるのも良いのではないでしょうか

それでは皆さま、良いElixirライフを