![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Reported informationBoost , Boost.Test , Writing unit tests
|
![]() |
Tip |
---|---|
Богатство информации, содержащейся в журналах, является ключом к быстрому пониманию и разрешению неудачного заявления. |
Когда утверждение терпит неудачу,<BOOST_TEST
>сообщает детали и значения операндов<statement
>, которые приводят к неудаче.
Код |
---|
<#defineBOOST_TEST_MODULEboost_test_macro3 #include<boost/test/included/unit_test.hpp> BOOST_AUTO_TEST_CASE(test_op_reportings) { inta=13,b=12; BOOST_TEST(a==b); BOOST_TEST(a<b); BOOST_TEST(a-1<b); BOOST_TEST(b>a-1); }> |
выход |
---|
<>./boost_test_macro3--log_level=all Running1testcase... Enteringtestmodule"boost_test_macro3" test.cpp(12):Enteringtestcase"test_op_reportings" test.cpp(15):error:in"test_op_reportings":checka==bhasfailed[13!=12] test.cpp(16):error:in"test_op_reportings":checka<bhasfailed[13>=12] test.cpp(17):error:in"test_op_reportings":checka-1<bhasfailed[13-1>=12] test.cpp(18):error:in"test_op_reportings":checkb>a-1hasfailed[12<=12] test.cpp(12):Leavingtestcase"test_op_reportings";testingtime:484us Leavingtestmodule"boost_test_macro3";testingtime:588us ***2failuresaredetectedinthetestmodule"boost_test_macro3"> |
В приведенном выше примере значения операндов сообщаются для проверки, что является более ценным в качестве копии полного заявления. Однако можно заметить, что к ним не относятся симметрично:
a-
1<
b
>Сообщения<"13 - 1 >= 12"failed
>b>
a-
1
>Сообщения<"12
<= 12"failed
>Подробнее о том, какЕдиничная система испытанийпарсирует утверждение, приведенное вэтомразделе.
В то время как совершенно точное и точное имя файла, название тестового случая, номер строки неудачного заявления несет информацию, которая является частичной в отношении значения неудачного заявления. Иногда эта информация недостаточно информативна. Макро<BOOST_TEST
>позволяет переопределить сообщение по умолчанию с помощью второго аргумента, как показано на следующем примере.
Код |
---|
<#defineBOOST_TEST_MODULEboost_test_message #include<boost/test/included/unit_test.hpp> BOOST_AUTO_TEST_CASE(test_message) { constinta(1),b(2); BOOST_TEST(a==b,"a should be equal to b: "<<a<<"!="<<b); BOOST_TEST(a!=10,"value of a="<<a); }> |
выход |
---|
<>./boost_test_message--log_level=all Running1testcase... Enteringtestmodule"boost_test_message" test.cpp(12):Enteringtestcase"test_message" test.cpp(15):error:in"test_message":ashouldbeequaltob:1!=2 test.cpp(16):info:check'value of a=1'haspassed test.cpp(12):Leavingtestcase"test_message";testingtime:219us Leavingtestmodule"boost_test_message";testingtime:318us ***1failureisdetectedinthetestmodule"boost_test_message"> |
Статья Reported information раздела Boost.Test Writing unit tests может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Writing unit tests ::
реклама |