2016-07-29 3 views
0

Я привык к тестированию JavaScript, особенно его BDD-фреймворкам и библиотекам, например Chai, где я могу описать тесты в удобной для человека форме и проверять имена со строками, например. «UserProfile -> Update First Name», затем см. Это сообщение в качестве вывода при запуске тестов.Более дружественные человеку сообщения об испытаниях с Erlang EUnit?

Можно ли написать тесты Erlang более естественным образом или, по крайней мере, интегрировать описания в процесс запуска тестов, а не просто добавлять их в качестве комментариев, но увидеть имя теста, которое не удалось?

ответ

2

Да. Чтобы добавить описания к тестам, тесты должны быть «тестовыми объектами» вместо обычных тестов. Например, изменить этот тест:

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

к этому:

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

То есть, имя функции должно заканчиваться _test_, и тело теста должны быть обернуты в ?_test макро , Существуют и другие такие «макросы обертки», начинающиеся с подчеркивания; например, простое утверждение можно переписать так:

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

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

После того, как у вас есть «тест-объект», вы можете обернуть его в кортеж, где первый элемент является строкой:

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())}. 

Эти описания будут напечатаны, когда тест не удастся. Если вы запустите eunit в подробном режиме, они будут напечатаны, когда тест будет выполнен.

 Смежные вопросы

  • Нет связанных вопросов^_^