С версией Symbian для C ++ для Symbian можно точно контролировать симуляцию условий нехватки памяти и, таким образом, детерминистически генерировать отпуск (отпуск является эквивалентом броска Symbian C ++) для всех возможных комбинаций путей выполнения в вашем коде на основе сбоя выделения .
Это невероятно полезно для целей тестирования, так как подавляющее большинство листьев / исключений в Symbian (то есть на ограниченном устройстве) является следствием нехватки памяти, это фактически означает, что вы можете тщательно протестировать свой код на предмет безопасности исключений. Это неизменно выявляет множество дефектов, в том числе множество, не связанных с обработкой исключений.
Для тех из вас, у кого есть копия Exceptional C ++, обратитесь к пункту 18 - представьте, что вы можете довольно легко сгенерировать условия для тестирования всех 23 путей выполнения с помощью этого кода и вытекающих из этого преимуществ.
Итак, мой вопрос: существуют ли какие-либо механизмы, методы или инструменты, которые позволят вам в тестовом коде генерировать исключения для тщательного тестирования обработки исключений в коде?
Предположим, вам пришлось протестировать код в пункте 18 «Исключительного C ++» (и, пожалуйста, давайте не будем обсуждать, что код должен быть переписан, предположим, что этого не может быть). Как вы можете протестировать его, чтобы убедиться, что все 23 пути выполнения выполняются в тестовом коде?
Этот вопрос не о Symbian, я использую его для предоставления некоторого контекста, чтобы проиллюстрировать из опыта невероятную выгоду способности детерминистически управлять генерацией исключений для целей тестирования и, таким образом, интересуется, как этого добиться в стандартном C ++ .