Интеграционный тест в приложении Spring с использованием Flowable - PullRequest
0 голосов
/ 12 апреля 2019

Мне нужно написать несколько интеграционных тестов для моего приложения Spring с использованием Flowable.Мои тесты должны включать логику рабочего процесса BPMN приложения.

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

Не вызовет ли запуск реального Текучего двигателя проблемы с производительностью во время работы ИТ?Я боюсь, что они займут много времени, если мне нужно будет выполнять это с каждым тестом отдельно.Как вы справляетесь с этим в своих приложениях?

1 Ответ

1 голос
/ 14 апреля 2019

Если вы спросите меня, то вам обязательно нужно запустить и развернуть обычный движок Flowable во время ваших тестов.Ссылка, которую вы вставили из документации, является точным способом проведения теста.Помните, что вы можете использовать свою собственную конфигурацию, вам не нужна специальная конфигурация Spring для тестирования.

Запуск реальных Flowable двигателей не вызовет проблем с производительностью во время тестирования.Все тесты в репозитории Flowable на самом деле являются тестами, которые создают и уничтожают движок в рамках одного теста, и это довольно быстро.В вашем случае это будет еще быстрее, поскольку вы не будете запускать движок для каждого теста (контекст приложения Spring кэшируется между тестами).Я также должен отметить, что даже если вы запускаете двигатель для каждого теста, время будет незначительным, так как загрузка двигателя происходит довольно быстро.

Имейте в виду, что другие компоненты из вашего приложения Spring могут замедлить запусктесты.

В качестве ссылки в модуле flowable-spring имеется 76 тестов в 28 тестовых классах, где каждый тестовый класс имеет свою собственную конфигурацию Spring, что означает отсутствие контекста Spring.повторное использование между тестами.Все эти тесты занимают 55 секунд на моей локальной машине.Для этих тестов вы должны учитывать, что некоторые тесты тестируют некоторые сложные сценарии, когда асинхронные исполнители работают и занимают больше времени, чем обычно.Скорее всего, таких тестов у вас не будет.Если эти конкретные тесты отключены (3 из 3 тестовых классов), время тестирования снижается до 28 с.

NB : если вы не используете @Deployment или используете автоматическое развертываниезатем от Flowable убедитесь, что вы удаляете экземпляры, которые вы создаете в своих тестах.Это позволит убедиться, что данные одного теста не влияют на данные другого теста.

...