Szukaj…


Wprowadzenie

Kiedy dokumentujesz swój kod za pomocą @doc , możesz podać przykłady takiego kodu:

# 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

Możesz dodać przykłady kodu jako przypadki testowe do jednego z pakietów testowych:

# myproject/test/doc_test.exs

defmodule DocTest do
  use ExUnit.Case
  doctest MyModule
end

Następnie możesz uruchomić testy z mix test .

Generowanie dokumentacji HTML na podstawie doctest

Ponieważ generowanie dokumentacji opiera się na przecenie, musisz zrobić 2 rzeczy:

1 / Napisz swój dokument doctest i wyraź swoje przykłady doctest, aby poprawić czytelność (lepiej podać nagłówek, np. „Przykłady” lub „testy”). Pisząc testy, nie zapomnij podać 4 spacji do kodu testu, aby formatował się on jako kod w dokumentacji HTML.

2 / Następnie wpisz „mix docs” w konsoli w katalogu głównym projektu eliksiru, aby wygenerować dokumentację HTML w katalogu doc znajdującym się w katalogu głównym projektu eliksiru.
$> mix docs

Dokumenty wieloliniowe

Możesz wykonać wieloetapowy doctest, używając „...>” dla wierszy następujących po pierwszym

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


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow