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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow