Elixir Language
doctests
Ricerca…
introduzione
Quando documenti il tuo codice con @doc
, puoi fornire esempi di codice come:
# myproject/lib/my_module.exs
defmodule MyModule do
@doc """
Given a number, returns `true` if the number is even, otherwise `false`.
## Example
iex> MyModule.even?(2)
true
iex> MyModule.even?(3)
false
"""
def even?(number) do
rem(number, 2) == 0
end
end
Puoi aggiungere gli esempi di codice come casi di test in una delle tue suite di test:
# myproject/test/doc_test.exs
defmodule DocTest do
use ExUnit.Case
doctest MyModule
end
Quindi, è possibile eseguire i test con il test del mix test
.
Generazione di documentazione HTML basata su doctest
Poiché la generazione della documentazione si basa sul markdown, devi fare 2 cose:
1 / Scrivi il tuo doctest e rendi chiari i tuoi esempi di doctest per migliorare la leggibilità (è meglio dare un titolo, come "esempi" o "test"). Quando scrivi i tuoi test, non dimenticare di dare 4 spazi al tuo codice di test in modo che sia formattato come codice nella documentazione HTML.
2 / Quindi, inserisci "mix docs" nella console alla radice del tuo progetto elixir per generare la documentazione HTML nella directory doc situata nella radice del tuo progetto elixir.
$> mix docs
Doctest multilinea
Puoi fare un doctest su più righe usando '...>' per le linee che seguono il primo
iex> Foo.Bar.somethingConditional("baz")
...> |> case do
...> {:ok, _} -> true
...> {:error, _} -> false
...> end
true