週刊Elixirライブラリ2015-15
Elixirのライブラリの解説を週ごとにお届けする記事です。
解説が間違っていた場合には、コメントか@hayabusa333にご連絡くださると嬉しいです。
今回はExUnitについて
# ExUnit is 何?
ExUnitは、ElixirのUnit Testを行うためのライブラリであり、xUnitシリーズの1つです。
# 実行環境
OS:OS X Yosemite
Erlang:Eshell V6.5, OTP-Version 18
Elixir:v1.0.4
# ExUnitの実行を行うための新規プロジェクトの作成
$ mix new my_ex_unit $ cd my_ex_unit
# テストを行うためのコードを記載する
ExUnitを使うだけではなく、実際のコードをテストするためのサンプルを作るために、実装を記述する。
$ vim lib/my_ex_unit.ex
テストを行うためのサンプルコードは下記となります。
defmodule MyExUnit do def one do 1 end defp onep do 1 end end
# Unit Testを記載
UnitTestを実施するためのコードを記載する
setupを使用するテストとassert系のテストを記載。
$ vim test/my_ex_unit_test.exs
サンプルコードは下記となります。
defmodule MyExUnitTest do use ExUnit.Case setup do {:ok, hello: "world"} end # setupに設定した内容を引き継いで使用するテスト項目 test "setup. assert with a match", %{hello: hello} do assert hello == "world" end # def にて返ってきた値をチェック test "one. assert with a match" do assert MyExUnit.one == 1 end # defp にて帰ってきた値のチェック # 現状はUndefinedFunctionErrorとなる(defpのテストができないか現在調査中) test "defp one. assert with a match" do assert_raise UndefinedFunctionError, fn -> MyExUnit.onep == 1 end end # UndefinedFunctionError であり、返ってくるメッセージの内容のチェックも行うテスト test "message defp one. assert with a match" do assert_raise UndefinedFunctionError, "undefined function: MyExUnit.onep/0", fn -> MyExUnit.onep == 1 end end # サンプルとして出力されるテスト test "the truth" do assert 1 + 1 == 2 end end
# ExUnitを使ってみる
$ mix test
# まとめ
今回はElixirにてUnitTestを実行するためのExUnitを紹介させていただきました。
ExUnitはElixirに標準で組み込まれていますので、どんどん使ってみてはいかがでしょうか。
それでは皆さま、良いElixirライフを