View Source Euclid.Assertions (Euclid v0.4.0)
Some ExUnit assertions
Link to this section Summary
Functions
Asserts that the left and right values are equal. Returns the left value unless the assertion fails,
or if the :returning option is used. Uses assert left == right under the hood, but works nicely in a pipeline.
Asserts that a NaiveDateTime or DateTime is no more than 30 seconds ago.
Asserts a pre-condition and a post-condition are true after performing an action.
Link to this section Types
Specs
assert_eq_opts() ::
{:ignore_order, boolean()}
| {:returning, any()}
| {:within, number() | {number(), Euclid.Duration.time_unit()}}
Link to this section Functions
Specs
assert_eq(left :: any(), right :: any(), opts :: [assert_eq_opts()]) :: any()
Asserts that the left and right values are equal. Returns the left value unless the assertion fails,
or if the :returning option is used. Uses assert left == right under the hood, but works nicely in a pipeline.
Options:
ignore_order: boolean- if theleftandrightvalues are lists, ignores the order when checking equality.returning: value- returnsvalueif the assertion passes, rather than returning theleftvalue.within: delta- asserts that theleftandrightvalues are withindeltaof each other rather than strictly equal.within: {delta, time_unit}- likewithin: deltabut performs time comparisons in the specifiedtime_unit. Ifleftandrightare strings, they are parsed as ISO8601 dates.
Asserts that a NaiveDateTime or DateTime is no more than 30 seconds ago.
Specs
assert_that(any(), [{:changes, any()} | {:from, any()} | {:to, any()}, ...]) :: {:__block__, [], [...]}
Asserts a pre-condition and a post-condition are true after performing an action.
Examples
{:ok, agent} = Agent.start(fn -> 0 end)
assert_that(Agent.update(agent, fn s -> s + 1 end),
changes: Agent.get(agent, fn s -> s end),
from: 0,
to: 1
)