Оператор нулевого распространения возвращает значение. И поскольку у вас должна быть переменная с левой стороны задания, а не значение, вы не можете использовать ее таким образом.
Конечно, вы могли бы сделать вещи короче, используя оператор tenary, но что, с другой стороны, не очень помогает аспекту читаемости.
Комментарий Иоахима Исакссона по вашему вопросу показывает другой подход, который должен работать.
Применение модульных тестов к унаследованному коду было очень причина , Работа Эффективно с Унаследованным кодом была записана. Michael Feathers является автором - как упомянуто в других ответах, он был вовлечен в создание и CppUnit и CppUnitLite.
Взгляните на cfix ( http://www.cfix-testing.org ), он специализирован для разработки Windows C/C ++ и поддерживает и непривилегированный режим и поблочное тестирование привилегированного режима.
Фруктоза выезда: http://sourceforge.net/projects/fructose/
Это - очень простая платформа, содержа только заголовочные файлы и таким образом легкое портативное устройство.
Взгляните на CUnitWin32. Это записано для MS Визуальный C. Это включает пример.
Michael Feathers из ObjectMentor способствовал разработке и CppUnit и CppUnitLite.
Он теперь рекомендует CppUnitLite
Я попробовал CPPunit, и это не очень удобно для пользователя.
единственная альтернатива, которую я знаю, использует C++. СЕТЬ для обертывания классов C++ и записи модульных тестов с одной из платформ поблочного тестирования.NET (NUnit, MBUnit и т.д.)
См. также ответы на тесно связанный вопрос "выбор инструмента/платформы поблочного тестирования C++", здесь
Также существует РАБОТА , Шаблонный модульный тест, основанная на шаблоне платформа. Это - синтаксис, является неловким (некоторые назвали это злоупотреблением шаблона), но его основное преимущество, это - все это содержавшееся в единственный заголовочный файл .
Вы найдете пример модульного теста записанный с РАБОТОЙ здесь.
CppUnit является путем. Посмотрите ссылку ниже:
Noel Llopis Игры Из является автором Исследование Джунглей Платформы Поблочного тестирования C++ , всестороннее (но теперь датированный) оценка различных платформ Поблочного тестирования C++, а также книга по игровому программированию.
Он использовал CppUnitLite долгое время, чиня различные вещи, но в конечном счете объединил усилия с другим автором библиотеки модульного теста и произвел UnitTest ++ . Мы используем UnitTest ++ здесь, и мне нравится он много, до сих пор. Это имеет (мне) точное правильное равновесие сил с маленьким местом.
я использовал решения собственной разработки, CxxTest (который требует Perl), и повышение:: тест. Когда я реализовал поблочное тестирование здесь в моем текущем задании, оно в значительной степени свелось к UnitTest ++ по сравнению с повышением:: тест.
мне действительно нравится большинство библиотек повышения, которыми я пользовался, но по моему скромному мнению, повышение:: тест является немного слишком властным. Мне особенно не нравилось это, это требует, чтобы Вы (AFAIK) реализовали основную программу тестовой обвязки с помощью повышения:: тестовый макрос. Я знаю, что это не "чистый" TDD, но иногда нам нужен способ запустить тесты от скручивания жгутов приложение GUI, например, когда специальный тестовый флаг передается в на командной строке и повышении:: тест не может поддерживать этот тип сценария.
UnitTest ++ был самой простой средой тестирования для установки, и использовать это я встретился в своем (ограниченном) опыте.
CxxTest является легкой, простой в использовании и кросс-платформенной JUnit/CppUnit/xUnit-like платформой для C++.
Повышение имеет библиотека Testing , который содержит поддержку поблочного тестирования. Это могло бы стоить проверить.
Проверьте превосходное сравнение между несколькими доступными комплектами. Автор той статьи позже разработал UnitTest ++ .
, Что я особенно как приблизительно это (кроме того, что это обрабатывает исключения и т.д. хорошо) - то, что существует очень ограниченный объем 'администрирования' вокруг тестовых сценариев и тестового определения приспособлений.
Google недавно выпустил их собственную библиотеку для поблочного тестирования приложения C++, названные Google Test.
Если вы используете Visual Studio 2008 SP1, я настоятельно рекомендую использовать MSTest для написания модульных тестов. Затем я использую макет Google для написания макетов. Интеграция с IDE идеальна и позволяет и не несет накладных расходов CPPunit с точки зрения редактирования трех мест для добавления одного теста.