This is a library of assertions for Elixir's ExUnit. It emphasizes two things:
-
Making tests easier to scan by capturing frequently-used assertions in functions that can be used in a pipeline.
This library will appeal to people who prefer this:
VM.ServiceGap.accept_form(params, @institution) |> ok_content |> assert_valid |> assert_changes(id: 1, in_service_datestring: @iso_date_1, out_of_service_datestring: @iso_date_2, reason: "reason")
... to this:
assert {:ok, changeset} = VM.ServiceGap.accept_form(params, @institution) assert changeset.valid? changes = changeset.changes assert changes.id == 1 assert changes.in_service_datestring == @iso_date_1 assert changes.out_of_service_datestring == @iso_date_2 assert changes.reason == "reason"
The key point here is that all of the
assert_*
functions in this package return their first argument to be used with later chained functions. -
Error messages as helpful as those in the base ExUnit assertions:
https://hexdocs.pm/flow_assertions
See also the change log.
Add flow_assertions
to your list of dependencies in mix.exs
:
def deps do
[
{:flow_assertions, "~> 0.6", only: :test},
]
end