Соответствующие модульные тесты зависят от вашего конкретного интерфейса (тестирование черного ящика), а также от вашей конкретной реализации (тестирование Glassbox). Что касается стека, некоторые вещи, которые я ожидал бы проверить:
- Можно поместить предмет в стек и вытолкнуть его.
- Когда вы кладете несколько разных элементов в стек, повторное выталкивание возвращает их в обратном порядке.
- Неинициализированный стек пуст.
- Стек, в который помещен элемент, не пуст.
- Стек, в котором элементы помещены и впоследствии удалены, пуст.
- Попытка всплывающего окна при отсутствии элементов приводит к задокументированному типу сбоя, независимо от того, возвращает ли он значение NULL, выдает исключение или прерывает программу.
Подведем итог:
- Базовая функциональность.
- заказ недвижимости.
- Пустота инвариантная.
- Режим отказа.
Обратите внимание, что то, что должно быть проверено, будет другим для других структур данных. Как правило, способ создания этого набора тестов заключается в создании модульного теста для каждой функции, который подтверждает, что каждая гарантия, предоставленная документацией, поддерживается и что она поддерживается для всех путей кода через функцию. Кроме того, следует протестировать документированные режимы отказов, чтобы подтвердить, что они выходят из строя ожидаемым образом.