Elixir Language
Doctests
Buscar..
Introducción
Cuando documenta su código con @doc
, puede proporcionar ejemplos de código así:
# 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
Puede agregar los ejemplos de código como casos de prueba en una de sus suites de prueba:
# myproject/test/doc_test.exs
defmodule DocTest do
use ExUnit.Case
doctest MyModule
end
Luego, puede ejecutar sus pruebas con la mix test
.
Generando documentación HTML basada en doctest.
Debido a que la generación de documentación se basa en la reducción, tiene que hacer 2 cosas:
1 / Escriba su doctest y haga que sus doctest sean claros para mejorar la legibilidad (es mejor dar un título, como "ejemplos" o "pruebas"). Cuando escriba sus pruebas, no olvide dar 4 espacios a su código de prueba para que se formatee como código en la documentación HTML.
2 / Luego, ingrese "mix docs" en la consola en la raíz de su proyecto de elixir para generar la documentación HTML en el directorio doc ubicado en la raíz de su proyecto de elixir.
$> mix docs
Doctests multilínea
Puedes hacer un doctest multilínea usando '...>' para las líneas que siguen a la primera
iex> Foo.Bar.somethingConditional("baz")
...> |> case do
...> {:ok, _} -> true
...> {:error, _} -> false
...> end
true