![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Explicit decorator declarationBoost , Boost.Test , Decorators
|
Код |
---|
<#defineBOOST_TEST_MODULEdecorator_00 #include<boost/test/included/unit_test.hpp> #include<boost/test/data/test_case.hpp> namespaceutf=boost::unit_test; namespacedata=boost::unit_test::data; BOOST_TEST_DECORATOR(*utf::description("with description")) BOOST_DATA_TEST_CASE(test_1,data::xrange(4)) { BOOST_TEST(sample>=0); }> |
выход |
---|
<>decorator_00--list_content test_1*:withdescription test_1*:withdescription test_1*:withdescription test_1*:withdescription> |
В приведенном выше примере декоратор применяется ктест-кейсу, управляемому данными. Макро<BOOST_DATA_TEST_CASE
>не может рассматривать декоратора как один из аргументов, поэтому используется явное заявление декоратора. Макро<BOOST_DATA_TEST_CASE
>генерирует последовательность из 4 тестовых случаев. На каждый из них наносится декоратор.
Другой пример использования явной декларации декоратора — это когда вы планируете, чтобы ваша тестовая программа компилировалась также на компиляторах без вариадных макросов. В этом случае рекомендуется использовать более многословный синтаксис. Он кратко изложен в следующей таблице:
Испытательный блок для регистрации |
Краткий синтаксис |
Универсальный синтаксис |
---|---|---|
Проверка |
<BOOST_AUTO_TEST_CASE(test_case,*decor1()*decor2()) { // assertions }> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_AUTO_TEST_CASE(test_case) { // assertions }> |
Испытательный корпус с креплением |
<BOOST_FIXTURE_TEST_CASE(test_case,Fx,*decor1()*decor2()) { // assertions }> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_FIXTURE_TEST_CASE(test_case,Fx) { // assertions }> |
Тестовый набор |
<BOOST_AUTO_TEST_SUITE(test_suite,*decor1()*decor2()) // test units BOOST_AUTO_TEST_SUITE_END()> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_AUTO_TEST_SUITE(test_suite) // test units BOOST_AUTO_TEST_SUITE_END()> |
Тестовый комплект с креплением |
<BOOST_FIXTURE_TEST_SUITE(test_suite,Fx,*decor1()*decor2()) // test units BOOST_AUTO_TEST_SUITE_END()> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_FIXTURE_TEST_SUITE(test_suite,Fx) // test units BOOST_AUTO_TEST_SUITE_END()> |
тестовый случай, основанный на данных |
<// not doable
> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_DATA_TEST_CASE(test_case,data,var) { // assertions }> |
шаблон тестового случая |
<// not doable
> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_AUTO_TEST_CASE_TEMPLATE(test_case,T,type_list) { // assertions }> |
Шаблон испытания с креплением |
<// not doable
> |
<BOOST_TEST_DECORATOR(*decor1()*decor2()) BOOST_FIXTURE_TEST_CASE_TEMPLATE(test_case,T,type_list,Fx) { // assertions }> |
На протяжении всего напоминания этой документации мы используем только краткий синтаксис.
Статья Explicit decorator declaration раздела Boost.Test Decorators может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Decorators ::
реклама |