Skip to content
inf0rmer edited this page Jan 4, 2015 · 1 revision

All core matchers are supported under both expects as well as asserts syntaxes.

When using the expects syntax, all matchers have negative counterparts, ie:

expect 1 |> not_to_eq 2
expect(1 > 5) |> not_to_be_true

eq

In asserts syntax:

#passes if actual == expected
assert eq(1, 1)

In expects syntax:

#passes if actual == expected
expect 1 |> to_eq 1

be_true

In asserts syntax:

#passes if expected == true
assert be_true(1 > 0)

In expects syntax:

#passes if expected == true
expect(1 > 0) |> to_be_true

be_truthy

In asserts syntax:

#passes if expected is truthy
assert be_truthy("something")

In expects syntax:

#passes if expected is truthy
expect "something" |> to_be_truthy

be_falsey

In asserts syntax:

#passes if expected is falsey
assert be_falsey(false)

In expects syntax:

#passes if expected is falsey
expect false |> to_be_falsey

be_nil

In asserts syntax:

#passes if expected is nil
assert be_nil(nil)

In expects syntax:

#passes if expected is nil
expect nil |> to_be_nil

have_key

In asserts syntax:

#passes if Dict has member as a key
assert have_key(%{:a => 1}, :a)

In expects syntax:

#passes if Dict has member as a key
expect %{:a => 1} |> to_have_key :a

be_empty

In asserts syntax:

#passes if Dict is empty
assert be_empty(%{})

In expects syntax:

#passes if Dict is empty
expect %{} |> to_be_empty

####It also works with Lists:

In asserts syntax:

#passes if Dict is empty
assert be_empty([])

In expects syntax:

#passes if Dict is empty
expect [] |> to_be_empty

####And Strings:

In asserts syntax:

#passes if Dict is empty
assert be_empty("")

In expects syntax:

#passes if Dict is empty
expect "" |> to_be_empty

include

In asserts syntax:

#passes if List includes member
assert include([1, 2], 1)

In expects syntax:

#passes if List includes member
expect [1, 2] |> to_include 1

####It also works with Maps:

In asserts syntax:

#passes if Map includes member
assert include(%{:a => 1, :b => 2}, {:a, 1})

In expects syntax:

#passes if Map includes member
expect %{:a => 1, :b => 2} |> to_include {:a, 1}

####And even Strings:

In asserts syntax:

#passes if String contains partial
assert include("a string", "a stri")

In expects syntax:

#passes if String contains partial
expect "a string" |> to_include "a_stri"

have_raised

In asserts syntax:

#passes if the given function raises an ArithmeticError
have_raised(fn -> 1 + "test") end, ArithmeticError)

In expects syntax:

#passes if the given function raises an ArithmeticError
expect fn -> 1 + "test" end |> to_have_raised ArithmeticError

have_thrown

In asserts syntax:

#passes if the given function throws a given value
have_thrown(fn -> throw "x" end, "x")

In expects syntax:

#passes if the given function throws a given value
expect fn -> throw "x" end |> to_have_thrown "x"

have_exited

In asserts syntax:

#passes if the given function exited the process
have_thrown(fn -> exit "bye bye!" end)

In expects syntax:

#passes if the given function exited the process
expect fn -> exit "bye bye!" end |> to_have_exited