defmodule Person do
defstruct [:first_name, :last_name]
def new(first_name, last_name) do
%__MODULE__{first_name: first_name, last_name: last_name}
end
def first_name(%__MODULE__{first_name: first_name}), do: first_name
def last_name(%__MODULE__{last_name: last_name}), do: last_name
endExUnit.start(auto_run: false)
defmodule PersonTest do
use ExUnit.Case, async: false
setup_all do
{:ok, person: Person.new("Adolfo", "Neto")}
end
test "person's first name is Adolfo", state do
assert Person.first_name(state[:person]) == "Adolfo"
end
test "person's last name is neto", state do
assert Person.last_name(state[:person]) == "Neto"
end
end
ExUnit.run()To run the tests, click "Reevaluate" in the Elixir cell below "Code" and below "Tests".
Thanks to David Bernheisel who pointed me to this blog post by Brooklyn Meyers.