Шрифт:
Рассмотрим примеры, иллюстрирующие каждый из перечисленных пунктов.
26.3.3.1. Зависимости
Рассмотрим следующую бессмысленную функцию.
Для тестирования функции
Для того чтобы протестировать функцию
• Входные данные функции
• Значение переменной
• Значения переменной
• Ввод из потока
• Состояние потока
• Значение переменной
• Выходные данные функции
• Возвращаемое значение.
• Значение переменной типа
• Состояние объекта
• Состояние объекта
• Состояние массива
• Любые исключения, которые мог сгенерировать массив
Как только мы идентифицировали входные и выходные данные, мы тут же оказываемся в ситуации, в которой уже побывали, тестируя
26.3.3.2. Управление ресурсами
Рассмотрим бессмысленную функцию.
Для того чтобы протестировать функцию
Перечислим очевидные недостатки.
• Файл
• Память, выделенная для указателя
• Память, выделенная для указателя
Кроме того, мы всегда должны рассматривать возможность того, что попытка открыть файл закончится неудачей. Для того чтобы получить этот неутешительный результат, мы намеренно использовали устаревший стиль программирования (функция