Как совместить модульное тестирование с assert () - PullRequest
3 голосов
/ 03 мая 2011

Предположим, что предварительные условия функций моего объекта проверены с помощью assert(). Как я могу, не отрывая при этом волос, написать значимые модульные тесты, которые отлавливают сбои предварительных условий, когда я передаю неверные параметры функциям?

Я имею в виду, assert() будет abort(), так как же я могу выполнить все остальные тесты после этого?

Ответы [ 3 ]

4 голосов
/ 03 мая 2011

Со временем я все меньше и больше увлекаюсь использованием assert. Но если вы хотите его использовать, я предлагаю написать собственную версию, которая генерирует исключения (которые могут быть перехвачены), а не вызывать abort ().

4 голосов
/ 03 мая 2011

Вы можете заменить assert() макросом, который вызывает ваш модуль юнит-тестирования при юнит-тестировании, но в противном случае оценивается как assert().

3 голосов
/ 03 мая 2011

Запустите ваши тесты в подпроцессе. Передача неверных параметров приведет к прерыванию дочернего процесса, но ваш тест (родительский) продолжится.

...