Référence rapide

Aide-mémoire du framework de test ExUnit pour Elixir

Guide de référence rapide pour le framework ExUnit d'Elixir : cas de test, assertions, réfutations, capture d'E/S et rappels de configuration.

· Publié le

ExUnit est le framework de test intégré d'Elixir, fournissant des macros simples pour définir les tests, assertions et hooks de configuration.

Cas de test (Test Cases)

defmodule MyTest do
  use ExUnit.Case
  use ExUnit.Case, async: true  # for async

  test "the truth" do
    assert 1 + 1 == 2
  end
end

Capture des E/S et des journaux (IO & Logs)

import ExUnit.CaptureIO

test "capture io" do
  result = capture_io(fn ->
    IO.puts "sup"
  end)

  assert result == "sup\n"
end
config :ex_unit, capture_logs: true

Assertions et réfutations (Assertions & Refutations)

assert x == y
refute x == y

assert_raise ArithmeticError, fn ->
  1 + "test"
end

assert_raise ArithmeticError, "message", fn -> ... end
assert_raise ArithmeticError, ~r/message/, fn -> ... end

flunk "This should have been an error"

Rappels de configuration et correspondances (Setup)

setup do
  {:ok, name: "John"}
end

test "it works", %{name: name} do
  assert name == "John"
end
defp my_hook(_context) do
  {:ok, name: "John", age: 54}
end

describe "a block" do
  setup [:my_hook]

  test "John's age", context do
    assert context[:name] == "John"
    assert context[:age] == 54
  end
end

Aide-mémoires connexes

Sujets associés