サーチ…


前書き

@docでコードを文書化するときは、次のようなコード例を提供できます。

# 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

テストケースとしてコード例をテストスイートのいずれかに追加することができます。

# myproject/test/doc_test.exs

defmodule DocTest do
  use ExUnit.Case
  doctest MyModule
end

その後、 mix testテストを実行できます。

doctestに基づいたHTML文書の生成

ドキュメントの生成はマークダウンに基づいているため、2つのことを行う必要があります。

1 /あなたのdoctestを書いて、可読性を向上させるためのdoctestの例を明確にしてください( "examples"や "tests"のような見出しを付ける方が良い)。テストを書くときには、HTMLドキュメントのコードとして書式設定されるように、テストコードに4つのスペースを付けることを忘れないでください。

2 /次に、あなたのエリクシールプロジェクトのルートにあるコンソールに "mix docs"と入力して、あなたのエリクシールプロジェクトのルートにあるdocディレクトリにHTMLドキュメントを生成します。
$> mix docs

複数のdoctest

最初の行に続く行には '...>'を使って複数行のdoctestを実行できます

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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow