View Source FactoryEx behaviour (factory_ex v0.1.0)
FactoryEx
installation
Installation
Available in Hex, the package can be installed
by adding factory_ex to your list of dependencies in mix.exs:
def deps do
[
{:factory_ex, "~> 0.1.0"}
]
endDocumentation can be found at https://hexdocs.pm/factory_ex.
using
Using
For defining your own factories just implement schema/0, repo/0 and
build/0 callback e.g:
defmodule MyFactory do
@behaviour FactoryEx
def schema, do: MySchema
def repo, do: MyRepo
def build(params \\ %{}) do
default = %{
foo: 21,
bar: 42
}
Map.merge(default, params)
end
endAnd then using it in your tests as:
# For getting a default parameter map.
FactoryEx.build(MyFactory)
# For getting a default parameter map with a modification.
FactoryEx.build(MyFactory, foo: 42)
# For inserting a default schema.
FactoryEx.insert!(MyFactory)
# For inserting a default schema with a modification.
FactoryEx.insert!(MyFactory, foo: 42)
Link to this section Summary
Callbacks
Callback that returns a map with valid defaults for the schema.
Callback that returns a struct with valid defaults for the schema.
Callback that returns the schema's repo module.
Callback that returns the schema module.
Functions
Builds a schema given the factory module and an optional
list/map of params.
Builds the parameters for a schema changeset/2 function given the factory
module and an optional list/map of params.
Removes all the instances of a schema from the database given its factory
module.
Inserts a schema given the factory module and an optional list/map of
params. Fails on error.
Insert as many as count schemas given the factory module and an optional
list/map of params.
Link to this section Callbacks
Link to this section Functions
@spec build(module(), keyword() | map()) :: Ecto.Schema.t()
Builds a schema given the factory module and an optional
list/map of params.
Builds the parameters for a schema changeset/2 function given the factory
module and an optional list/map of params.
Removes all the instances of a schema from the database given its factory
module.
Inserts a schema given the factory module and an optional list/map of
params. Fails on error.
Insert as many as count schemas given the factory module and an optional
list/map of params.