Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

The obsolete initialization function

Boost , Boost.Test , Advanced Usage Scenarios

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Для обратной совместимостиUnit Test Frameworkтакже позволяет настроить функцию инициализации другого типа. Это называетсяустаревшей функцией инициализации. Его подпись:

boost::unit_test::test_suite* init_unit_test_suite(int argc, char* argv[]);

Оригинальный дизайнUnit Test Framework, требуемый программистом для его реализации. Он был предназначен для инициализации и возврата мастер-теста. В то время не было доступноавтоматической регистрации тестовых случаев. Значение нулевого указателя считалось ошибкой инициализации.

В варианте однозаголовочного использования вы возвращаетесь к устаревшей подписи функции инициализации, опуская определение макроса<BOOST_TEST_ALTERNATIVE_INIT_API>в коде тестового модуля.

Example: using obsolete initialization function

Код

<
#include<boost/test/included/unit_test.hpp>
#include<iostream>
BOOST_AUTO_TEST_CASE(test1)
{
 BOOST_TEST(false);
}
boost::unit_test::test_suite*init_unit_test_suite(int/*argc*/,char*/*argv*/[])
{
 std::cout<<"using obsolete init"<<std::endl;
 return0;
}
>

выход

<
>custom_obsolete_init
usingobsoleteinit
Running1testcase...
test.cpp(6):error:in"test1":checkfalsehasfailed
***1failureisdetectedinthetestmodule"Master Test Suite"
>

В варианте использования статической библиотеки необходимо опустить определение макроса<BOOST_TEST_ALTERNATIVE_INIT_API>в тестовом модуле и составить.Unit Test Frameworkстатическая библиотека без флага компиляции<BOOST_TEST_ALTERNATIVE_INIT_API>(это по умолчанию).

В варианте использования совместно используемой библиотеки невозможно использовать устаревшую функцию инициализации.

Даже если вы решите использовать устаревшую функцию инициализации, рекомендуется:

  1. Вы всегда возвращаете значение нулевого указателя и устанавливаете мастер-тест через<test_suite::add>, как показаноздесь. Нынешняя структура больше не рассматривает значение нулевого указателя как отказ.
  2. Вы сигнализируете об отказе, бросая<boost::unit_test::framework::setup_error>исключение.
  3. Вы получаете доступ к аргументам командной строки через интерфейс главного тестового набораи игнорируете аргументы функции<argc>и<argv>.
[Caution] Caution

Устаревшая функция инициализации является устаревшей. Рекомендуется перейти от старой функции инициализации API и полагаться на автоматическую регистрацию тестового блока икрепления(включаяглобальные крепления) для другой настройки.


PrevUpHomeNext

Статья The obsolete initialization function раздела Boost.Test Advanced Usage Scenarios может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Advanced Usage Scenarios ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 19:02:10/0.0082850456237793/1