Elixir Language
Doctests
サーチ…
前書き
@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