Home

Awesome

ExUnitFixtures

A library for defining modular dependencies (fixtures) for ExUnit tests.

What are Fixtures?

Fixtures in ExUnitFixtures are just functions that are run before a test.

They can be used to setup the tests environment somehow, or provide the test with some data that it requires. Similar in purpose to setup & setup_all but more powerful:

Installation

  1. Add ex_unit_fixtures to your list of dependencies in mix.exs:
def deps do
  [{:ex_unit_fixtures, "~> 0.3.1", only: [:test]}]
end

Documentation

The documentation can be found on hexdocs.pm: http://hexdocs.pm/ex_unit_fixtures/ExUnitFixtures.html

Example

Say some of your tests required a model named my_model. You should define a fixture fixture using deffixture, then tag your test to say it requires this fixture:

defmodule MyTests do
  use ExUnitFixtures
  use ExUnit.Case
  ExUnit.Case.register_attribute __MODULE__, :fixtures

  deffixture my_model do
    # Create a model somehow...
    %{test: 1}
  end

  @fixtures: :my_model
  test "that we have some fixtures", context do
    assert context.my_model.test == 1
  end
end

More details can be found in the documentation.

Examples in the wild.