Elixir Language
Doctests
Recherche…
introduction
Lorsque vous documentez votre code avec @doc
, vous pouvez fournir des exemples de code comme ceci:
# 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
Vous pouvez ajouter les exemples de code en tant que cas de test dans l'une de vos suites de tests:
# myproject/test/doc_test.exs
defmodule DocTest do
use ExUnit.Case
doctest MyModule
end
Ensuite, vous pouvez ensuite exécuter vos tests avec le mix test
.
Générer de la documentation HTML basée sur doctest
La génération de la documentation étant basée sur le démarquage, vous devez faire 2 choses:
1 / Ecrivez votre doctest et donnez des exemples clairs de vos doctest pour améliorer la lisibilité (il est préférable de donner un titre, comme "des exemples" ou des "tests"). Lorsque vous écrivez vos tests, n'oubliez pas de donner 4 espaces à votre code de test pour qu'il soit formaté en tant que code dans la documentation HTML.
2 / Ensuite, entrez "mix docs" dans la console à la racine de votre projet elixir pour générer la documentation HTML dans le répertoire doc situé à la racine de votre projet elixir.
$> mix docs
Docteurs multilignes
Vous pouvez faire un doctest multiligne en utilisant "...>" pour les lignes qui suivent le premier
iex> Foo.Bar.somethingConditional("baz")
...> |> case do
...> {:ok, _} -> true
...> {:error, _} -> false
...> end
true