プロジェクトで多くの単体テストを作成しようとした場合は、実際にテスト ジェネレーターの価値を見つけることができると思います。
テストジェネレーターを使えば、テスト関数名の作成だけに時間を費やす必要がなく、テストジェネレーターを作成するためのコードは標準関数よりも短くなります。
たとえば、次のコードはgproc
テスト ジェネレーターのオープン ソース プロジェクトからのものであり、参照用にテスト ジェネレーターを使用しており、ファイルは次の場所にあります。github.
reg_test_() ->
{setup,
fun() ->
application:start(gproc),
application:start(mnesia)
end,
fun(_) ->
application:stop(gproc),
application:stop(mnesia)
end,
[
{spawn, ?_test(?debugVal(t_simple_reg()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_simple_counter()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_simple_aggr_counter()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_update_counters()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_simple_prop()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_await()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_await_self()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_await_crash()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_simple_mreg()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_gproc_crash()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_cancel_wait_and_register()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_give_away_to_pid()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_give_away_to_self()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_give_away_badarg()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_give_away_to_unknown()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_give_away_and_back()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_select()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_select_count()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_qlc()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_get_env()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_get_set_env()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_set_env()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_get_env_inherit()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_monitor()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_monitor_give_away()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_subscribe()))}
, ?_test(t_is_clean())
, {spawn, ?_test(?debugVal(t_gproc_info()))}
, ?_test(t_is_clean())
]}.