Neptune#
Neptune - инструмент, который был разработан для интеграционного тестирования. Так же он может подойти для написания e2e тестов.
В данный момент Neptune проходит ALPHA-тестирование сотрудниками Tinkoff.ru. Сборки пока не доступны в публичных maven-репозиториях. Для обзора в данный момент доступны исходный код, данная документация и Javadoc
Для кого был создан Neptune#
для Java/Kotlin разработчиков
для проектов, разрабатывающие софт на базе Spring Boot
для проектов, разрабатывающие софт на базе Micronaut (пока в планах)
для QA-инженеров
Почему Neptune?#
Neptune - это библиотека готовых шагов для описания тестов со своим DSL
Neptune имеет средства для написания своих расширений и библиотек шагов
Neptune не вносит в проект новые зависимости, а адаптируется к стеку, используемому командами разработки ⚠️ Neptune может требовать версии используемых библиотек не ниже указанных
Принцип или манифест#
Идея, реализованная в Neptune, состоит в том, что любой фреймворк для unit/интеграционного/приемочного тестирования можно построить на следующих принципах:
каждый шаг теста может быть выполнен в рамках некоторого контекста (работа с базой данных, Rest API, экраном web или мобильного приложения)
все многообразие шагов сводится к комбинации элементарных действий, выполняемых в рамках определенного контекста, описанных один раз
каждый шаг в Neptune - функция. Эта функция принимает аргумент. Она выполняет простую операцию и либо возвращает результат (назовем это get-step), либо не возвращает ничего (назовем это action-step)
аргументом для функции-шага в рамках того или иного контекста может быть как ранее полученное значение, так и другая функция-шаг. За счет этого формируется последовательность/иерархия шагов
контекст как объект языка программирования, является аргументом функции-шага, он предназначен для инкапсуляции объектов-ресурсов для выполнения шагов и разделяет логику шагов и инициализации ресурсов для их выполнения.
набор параметров get-step сводится к двум элементам:
время на получение необходимого результата
набор критериев, которым должен соответствовать возвращаемый результат