Sök…


Introduktion

När du dokumenterar din kod med @doc kan du @doc kodexempel på så sätt:

# 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

Du kan lägga till kodexemplen som testfall i en av dina testsviter:

# myproject/test/doc_test.exs

defmodule DocTest do
  use ExUnit.Case
  doctest MyModule
end

Sedan kan du sedan köra dina test med mix test .

Generera HTML-dokumentation baserad på doctest

Eftersom generering av dokumentation är baserad på markdown måste du göra två saker:

1 / Skriv din doctest och gör dina doctest-exempel tydliga för att förbättra läsbarheten (Det är bättre att ge en rubrik, som "exempel" eller "tester"). När du skriver dina tester, glöm inte att ge fyra mellanslag till testkoden så att den formateras som kod i HTML-dokumentationen.

2 / Ange sedan "mix docs" i konsolen vid roten till ditt elixir-projekt för att generera HTML-dokumentationen i doc-katalogen som finns i roten till ditt elixir-projekt.
$> mix docs

Multiline doctests

Du kan göra en multiline doctest genom att använda '...>' för raderna som följer den första

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow