Задание 5.2D

Лабораторная №5 — задание 5.2D #

Нужно реализовать функциональные тесты, проверяющие обработку примеров программ, подготовленных аналитиком.

⚠️ Обратите внимание #

Это задание выполняется по примерам программ, подготовленным аналитиком в задании 5.2A.

  • Примеры должны появиться до начала кодирования — так же, как и в реальных проектах.
  • Вы можете составлять примеры совместно с аналитиком, а затем приступить к реализации.
  • Ждать проверки задания аналитика преподавателем не нужно.

Порядок выполнения #

  1. Получите примеры программ для своего языка программирования у аналитика
  2. Добавьте в проект tests/Interpreter.Specs тесты для всех примеров программ, подготовленных аналитиком
  3. Пройдите все тесты, при необходимости исправив выявленные ошибки в любой из подсистем интерпретатора

Требования к тестам #

Вы сами выбираете инструмент для приёмочных тестов:

  1. Вы можете использовать Gherkin для тестов интерпретатора: Gherkin для приёмочных тестов.
  2. Вы также можете не использовать Gherkin, опираясь только на базовые возможности фреймворка тестов и многострочные литералы для описания программ в тестах.

В любом варианте типичный тест содержит три шага:

  1. Пусть я написал программу: """ ... многострочный код ... """
  2. Когда я ввожу в консоли: """ ... текст ввода ... """
  3. Тогда я увижу в консоли: """ ... текст ожидаемого вывода ..."""

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

Справочные материалы #

  1. Каноничный TDD и список тестов
  2. Gherkin для приёмочных тестов.
  3. Пример PsKaleidoscope