C ++ Framework Catch Сделка с утверждением C?

У меня есть юнит-тесты с использованием фреймворка Catch Testing от Phil Squared в сочетании с некоторым сторонним кодом, использующим assert.

Во время разработки часто случается, что из-за некоторых ошибок появляются и программа прерывается. В этих случаях Catch не сообщает никаких журналов и другой диагностической информации.

Есть ли способ «перенаправить» эту программу на аборт и позволить Catch справиться с этим?

1

Решение

Вы не можете поймать утверждение, но вы можете переопределить его. Оригинальный assert просто завершает программу, он не выдает исключение, поэтому вы не можете его перехватить. Но assert — это макрос, и вы можете отменить оригинальный макрос и определить свой собственный. В программах на C ++ распространенным трюком является переопределение утверждения таким образом, чтобы оно вызывало исключение. И тогда вы сможете поймать его в тестах.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector