Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - obmarg/ex_unit_fixtures: A library for defining modular dependencies (fixtures) for ExUnit tests.
A library for defining modular dependencies (fixtures) for ExUnit tests. - obmarg/ex_unit_fixtures
Visit SiteGitHub - obmarg/ex_unit_fixtures: A library for defining modular dependencies (fixtures) for ExUnit tests.
A library for defining modular dependencies (fixtures) for ExUnit tests. - obmarg/ex_unit_fixtures
Powered by 0x5a.live ๐
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:
- Tests explicitly list what fixtures they require, ensuring that no un-neccesary setup work is done.
- Fixtures may be shared across many tests in a project.
- Fixtures may depend on or override other fixtures, allowing core fixtures to be used & customised as each subsystem or test module requires.
Installation
- 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.
Elixir Resources
are all listed below.
Made with โค๏ธ
to provide different kinds of informations and resources.