Реализация ABAP Unit test

И не говорите мне, что я зануда.

Дело было так. Я когда-то уже вещал вам про TDD методологию, а сегодня решил на практике попробовать как оно работает в SAP. Сделал простой OData сервис, его и решил протестировать автоматизированно.

А теперь я хочу его автоматизированно тестировать. Ранее я рассказывал про sECATT. Сегодня поговорим про Unit тестирование. Это такая штука, которая программируется на языке программирования ABAP и позволяет проверять логику работы _внутри_ программы. То есть, она не имитирует работу пользователя, а проверяет внутренние процедуры, методы, функции на ожидаемый результат. Например, всегда должно сохранять данные с корректным форматом, никогда нельзя сохранять данные с некорректным форматом. Делаем для этого два метода — тест на положительный результат и тест на отрицательный результат.

Так, вернемся к нашим баранам. Есть класс Data Provider Class (DPC), который для OData модели поставляет данные по CRUD. То есть мы его мучаем HTTP запросом типа GET, например, а он нам данные отдает после аутентификации и авторизации. Нам нужно написать тест, который проверит, что данные на самом деле отдаются и соответствуют эталонным.

Для этого нам нужно сделать локальный класс, который будет тестировать методы DPC. Исходники ниже. Программист быстро разберется.

Все дело в плюшках!

Вот смотрите. Кроме того, что программулька умеет запускать эти тесты, собирать по ним статистику, делать это в фоне, тем самым автоматизируя контроль качества, уживается с код инспектором; программулька умеет думать! Ну как думать, она смотрит какие строчки исходного кода были протестированы или, говоря иначе, покрыты тестами.

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

Завтра прилетает из смежной области новая заявка. Кто-то что-то правит, все ломается. Вот чтобы это сломанное хозяйство не перенести в продуктив и нужны тесты. Тест уже в разработке проверит, что тот или иной алгоритм в куске кода не работает так, как было заложено в эталонном тесте. И тогда нужно либо искать ошибку в нововведениях, либо изменять тест под новые требования.

Реализация ABAP Unit test: 1 комментарий

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