2016-07-29 8 views
0

私はJavaScriptテスト、特にBDDフレームワークとChaiのようなライブラリに慣れています。ここで私は人間にやさしい方法でテストを記述できます。 "UserProfile - > Update First Name"と入力し、テスト実行時にこれらのメッセージを出力として表示します。Erlang EUnitで人にやさしいテス​​トメッセージ

Erlangテストをより自然な方法で書くことができますか、または少なくとも、テストを実行するプロセスに記述を組み込むことはできますか?コメントではなく、失敗したテストの名前を参照してください。

答えて

2

はい。テストに説明を追加するには、テストはプレーンなテストではなく、テストオブジェクトである必要があります。 ?_testマクロに包まれるべきである

foo_test_() -> 
    ?_test(
     begin 
     run_foo(), 
     ensure_foo_works() 
     end). 

、関数の名前が_test_で終わるべきであり、試験体:これ

foo_test() -> 
    run_foo(), 
    ensure_foo_works(). 

たとえば、このテストを変更します。アンダースコアで始まる他の "ラッパーマクロ"があります。例えば、簡単な主張は次のように書き換えることができます。

foo_test_() -> 
    {"Ensure that foo works", 
    ?_test(
     begin 
     run_foo(), 
     ensure_foo_works() 
     end)}. 

check_foo_test_() -> 
    {"Check that foo is ok", ?_assertEqual(ok, foo())}. 
:あなたは、「テスト・オブジェクト」を持っている

%% before 
check_foo_test() -> 
    ?assertEqual(ok, foo()). 

%% after 
check_foo_test_() -> 
    ?_assertEqual(ok, foo()). 

たら、最初の要素が文字列であるタプル、それをラップすることができます

これらの説明は、テストが失敗したときに表示されます。 eunitを冗長モードで実行すると、テスト実行時にもeunitが出力されます。

関連する問題