Awesome
FactoryGirlElixir
Minimal implementation of Ruby's factory_girl in Elixir.
This is a rewrite of the factory_boy project to make it work on Elixir v1.0.x.
Usage
Add FactoryGirlElixir as a dependency in your mix.exs
file.
defp deps do
[
{:factory_girl_elixir, "~> 0.1.1"}
]
end
You should also update your applications list to include both projects:
def application do
[applications: [:factory_girl_elixir]]
end
After you are done, run mix deps.get
in your shell to fetch the dependencies.
Defining a Factory
defmodule Factory do
use FactoryGirlElixir.Factory
factory :user do
field :password, "secret"
# create a sequence using an anonymous functions
field :username, fn(n) ->
"username#{n}"
end
# or an anonymous functions shortcut
field :email, &("foo#{&1}@example.com")
end
factory :assets do
field :name, "bob"
end
end
Then query the module to get a list of attributes for your record
user = Factory.attributes_for(:user) #=> %{password: "secret", username: "username1", email: "foo1@example.com"}
parametrized_user = user |> Factory.parametrize
#=> %{"email" => "foo1@example.com", "password" => "secret", "username" => "username1"}
You can override attributes
user = Factory.attributes_for(:user, email: "user@example.org")
#=> %{password: "secret", username: "username1", email: "user@example.org"}
Contributing
- Fork this repo
- Create a topic branch -
git checkout -b my_branch
- Push to your branch -
git push origin my_branch
- Create a Pull Request from your branch
- That's it!
Copyright and license
Copyright (c) 2014 Duilio Ruggiero. Code released under the MIT license.