Zoeken…


Invoering

Wanneer u uw code documenteert met @doc , kunt u codevoorbeelden geven zoals:

# 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

U kunt de codevoorbeelden als testgevallen toevoegen aan een van uw testpakketten:

# myproject/test/doc_test.exs

defmodule DocTest do
  use ExUnit.Case
  doctest MyModule
end

Vervolgens kunt u uw tests uitvoeren met een mix test .

HTML-documentatie genereren op basis van doctest

Omdat het genereren van documentatie gebaseerd is op markdown, moet u 2 dingen doen:

1 / Schrijf uw doctest en maak uw doctest-voorbeelden duidelijk om de leesbaarheid te verbeteren (het is beter om een kop te geven, zoals "voorbeelden" of "tests"). Vergeet bij het schrijven van uw tests niet om 4 spaties toe te voegen aan uw testcode zodat deze wordt opgemaakt als code in de HTML-documentatie.

2 / Voer vervolgens "mix docs" in de console in de root van uw elixir-project in om de HTML-documentatie te genereren in de doc-directory in de root van uw elixir-project.
$> mix docs

Doctests met meerdere regels

U kunt een multiline-doctest uitvoeren door '...>' te gebruiken voor de regels na de eerste

iex> Foo.Bar.somethingConditional("baz")
...>   |> case do
...>       {:ok, _} -> true
...>       {:error, _} -> false
...>      end
true


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow