Лабораторная №5 — задание 5.2D #
Нужно реализовать функциональные тесты, проверяющие обработку примеров программ, подготовленных аналитиком.
⚠️ Обратите внимание #
Это задание выполняется по примерам программ, подготовленным аналитиком в задании 5.2A.
- Примеры должны появиться до начала кодирования — так же, как и в реальных проектах.
- Вы можете составлять примеры совместно с аналитиком, а затем приступить к реализации.
- Ждать проверки задания аналитика преподавателем не нужно.
Порядок выполнения #
- Получите примеры программ для своего языка программирования у аналитика
- Добавьте в проект
tests/Interpreter.Specsтесты для всех примеров программ, подготовленных аналитиком - Пройдите все тесты, при необходимости исправив выявленные ошибки в любой из подсистем интерпретатора
Требования к тестам #
Вы сами выбираете инструмент для приёмочных тестов:
- Вы можете использовать Gherkin для тестов интерпретатора: Gherkin для приёмочных тестов.
- Вы также можете не использовать Gherkin, опираясь только на базовые возможности фреймворка тестов и многострочные литералы для описания программ в тестах.
В любом варианте типичный тест содержит три шага:
- Пусть я написал программу:
""" ... многострочный код ... """ - Когда я ввожу в консоли:
""" ... текст ввода ... """ - Тогда я увижу в консоли:
""" ... текст ожидаемого вывода ..."""
Вместо реального ввода-вывода можно в тестах создать дублирующий класс FakeEnvironment, который используется тестом, чтобы записать ввод и прочитать фактический вывод интерпретатора.