Так что это круто. Эликсир позволяет вам определить простой тестовый модуль следующим образом:
defmodule DocTest do use ExUnit.Case, async: true doctest Unicorns end
Это круто и делает вещи! Но что именно он делает? Он запускает примеры кода в комментариях к документации.(Если вы пользователь Python, приносим извинения за резкость.)
да. Вы правильно прочитали. Автоматизированное тестирование примеров документации! Давайте посмотрим на пример:
defmodule Unicorns do @doc """ Gives a string unicorns. ## Examples iex> Magic.unicorns("stephen") "stephen unicorns" iex> Magic.unicorns('silly') "silly unicorns" """ def unicorns(str) when is_binary(str), do: str <> " unicorns" def unicorns(str), do: to_string(str) <> " unicorns" end
И запустите его:
$ mix test test/doc_test.exs Finished in 0.00 seconds 1 test, 0 failures
Теперь я должен сказать: Mix генерирует макрос doctest в каждом новом проекте, поэтому он уже должен быть в ваших текущих приложениях. Пора заняться документацией, ага!
Для большего:
http://elixir-lang.org/docs/stable/ex_unit/ExUnit.DocTest.html