Ответы пользователя по тегу C++
  • Можно ли улучшить мой первый юнит-тест с применением boost::test?

    prograholic
    @prograholic
    Замечание насчет exception safety + RAII:
    Если вы используете boost::shared_ptr, то логично создавать объекты с помощью std::make_shared, а не использовать для этого сырой указатель (fileRaw и fileRaw2):
    filePtr = boost::make_shared<std::fstream>( outputfile.c_str(), ios::in | ios::out | ios::ate | ios::binary );
    . Ну и выкинуть использование fileRaw и fileRaw2.

    Код юнит-теста — это тоже код, поэтому лучше не использовать в тесте магических констант: 0xE9 и пр.
    Вынесите их в отдельное пространство имен:
    namespace consts
    {
      const int ConstantName = 0xE9;
      const char OutputFileName [] = "Correct32.bin";
    }
    Естественно, при этом константам дать осмысленные имена.

    Также, я бы не стал использовать в юнит-тесте работу с файлами, вместо этого я бы использовал std::streambuf для чтения/записи данных в памяти — но это возможно, если в вашей программе есть механизм для ввода/вывода не только через fstream
    Ответ написан
    1 комментарий