Я хочу протестировать код, который иногда использует assert()
. В частности, я хочу убедиться, что определенные команды действительно вызывают утверждение. Но я не хочу, чтобы программа была прервана. (Если бы это произошло, мне нужно было бы обеспечить прерывание программы извне программы и иметь разные программы для каждого такого теста.)
Я также знаю, что assert()
- это макрос, поэтому, если код I ' m test-only only header, я теоретически мог бы написать какой-нибудь макрос замены, чтобы вызвать сбой, используя мою библиотеку юнит-тестирования ( doctest ).
Мой вопрос:
- Возможно, в doctest уже есть какие-то средства для такого рода тестов?
- Если нет, есть ли какой-то идиоматический c способ реализации assert-firing-tests? Возможно, с другими средами / библиотеками тестирования, которые я мог бы адаптировать?
Примечание: я заметил здесь, на SO , что у Google Test есть какое-то связанное средство, ASSERT_DEATH , но мне не ясно, что он делает то, что я хочу.