diff options
author | Ed Holland <edjholland@gmail.com> | 2015-10-02 01:11:10 +0100 |
---|---|---|
committer | edholland <edjholland@gmail.com> | 2015-10-03 18:27:07 +0200 |
commit | 61597e603f78dc0645517a13b0b258236e5a3563 (patch) | |
tree | 5a67d9021447294ffc372f0da682a10270c1f298 | |
parent | a743c831a07f5e846051b156152fe8e6ddcfb097 (diff) |
Add section on eunit in erlang doc
-rw-r--r-- | erlang.html.markdown | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/erlang.html.markdown b/erlang.html.markdown index 8b67a76a..31cdcdab 100644 --- a/erlang.html.markdown +++ b/erlang.html.markdown @@ -299,6 +299,39 @@ CalculateArea ! {circle, 2}. % 12.56000000000000049738 % The shell is also a process; you can use `self` to get the current pid. self(). % <0.41.0> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 5. Testing with EUnit +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Unit tests can be written using EUnits's test generators and assert macros +-module(fib). + -export([fib/1]). + -include_lib("eunit/include/eunit.hrl"). + + fib(0) -> 1; + fib(1) -> 1; + fib(N) when N > 1 -> fib(N-1) + fib(N-2). + + fib_test_() -> + [?_assert(fib(0) =:= 1), + ?_assert(fib(1) =:= 1), + ?_assert(fib(2) =:= 2), + ?_assert(fib(3) =:= 3), + ?_assert(fib(4) =:= 5), + ?_assert(fib(5) =:= 8), + ?_assertException(error, function_clause, fib(-1)), + ?_assert(fib(31) =:= 2178309) + ]. + +% EUnit will automatically export to a test() fucntion to allo running the tests +% in the erlang shell +fib:test() + +% The popular erlang build tool Rebar is also compatible with EUnit +% ``` +% rebar eunit +% ``` + ``` ## References |