A useful tool for testing sturct and map in Elixir.
defmodule MyStruct do
defstruct a: 1, b: 1, z: 10
end
defmodule Example
use ExUnit.Case
use StructAssert
test "example" do
assert_subset(%MyStruct{}, [a: 1, b: 2])
# code: assert_subset(%MyStruct{}, [a: 1, b: 2])
# left: %{a: 1, b: 1, z: 10}
# right: %{a: 1, b: 2, z: 10}
assert_subset(%MyStruct{}, [a: 1, b: &is_atom(&1)])
# code: assert_subset(%MyStruct{}, [a: 1, b: &(is_atom(&1))])
# left: %{a: 1, z: 10, b: 1}
# right: %{a: 1, z: 10, b: &:erlang.is_atom/1}
end
end
If available in Hex, the package can be installed
by adding struct_assert
to your list of dependencies in mix.exs
:
def deps do
[{:struct_assert, ">= 0.0.0"}]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/struct_assert.