Unit-test

Юнит-тест это автоматизированный тест изолированного от зависимостей
логического блока кода. Юнит-тест даёт возможность разрабатывать код, который можно легко развивать с течением времени. При использовании unit-тестирования разработчик гарантирует правильность работы кода, упрощает проверку качества и рефакторинг кода.

Unit-test представляет собой специализированный локальный класс, который вызывает методы основного класса, разрабатываемые функциональные модули или подпрограммы программы. Затем в локальны класс анализирует результат работы программы и сравнивает его с эталонным. Таким образом для unit-test разработка представляет собой черный ящик, который должен в зависимости от специально подготовленных исходных данных возвращать ожидаемые от него результаты. Что именно происходит внутри разработки классу тестирование не важно.

Перейдем к практической реализации unit-test.

Сначала напишем программу, которую будем тестировать. Эта программа будет вычислять арифметическое выражение, представленное в виде строки. Для простоты реализуем только сложение и вычитание.

Как видно программа представляет собой локальный класс с одним публичным методом calculate и одним приватным методом eval.

В простом случае мы можем сделать тестовый класс, который будет вызывать публичный метод calculate и сделать несколько тестов, которые покроют и приватный класс. В этом случае добавим include с реализацией unit-test

Для запуска unit-test необходимо выбрать пункт меню Программа-Выполнить-Тесты модулей (Ctrl+Shift+F10).

По рекомендации SAP unit-test иметь тесты для каждого метода, включая приватные. Для того, что бы класс unit-test мог вызывать приватный метод рабочего класса необходимо его сделать дружественным.

Тем не менее чаще всего бывает такое, что вызовами публичных методов весь функционал покрывается unit-test-ами.

Измерить процент покрытия можно выбрав пункт меню Программа-Выполнить-Тест модуля с — Измерение покрытия

Результат измерения покрытия.

Кликнув дважды по имени метода можно увидеть, какие строки не покрыты тестом (отмечены красным цветом). В нашем случае код покрыт полностью

Покрытие unit-test

Eclipse рассчитывает процент покрытия точнее

Покрытие unit-test в Eclipse

В следующий раз приведу примеры unit-test для функциональных модулей и классов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *