Junit - это фреймворк для модульного тестирования, но он также используется для интеграционного тестирования. Поведение, необходимое для модульного тестирования и интеграционных тестов, отличается. Модульные тесты должны быть изолированы от других тестов. Но интеграционные тесты требуют взаимодействия между последовательными тестами. В моем случае сценарий выглядит следующим образом. Каждая строка требует объект из предыдущего выполнения. Чтобы добиться такого поведения, должен быть порядок выполнения тестов. Есть аннотация @Order, но эта аннотация упорядочивает методы одного класса. Но в моем случае нецелесообразно хранить эти тесты в одном классе.
- Создать клиента
- Создать иерархический биллинговый аккаунт для этого клиента
- Создать контракт для клиента
- Продать какой-то иерархический элемент для клиента
- Продать какой-то неиерархический элемент для клиента
Может быть предложено выполнить эти операции для каждого тест. Например, чтобы создать учетную запись для выставления счетов с иерархической структурой, сначала создайте клиента в тесте. Эта схема не оптимальное решение, тоже есть сложности.
- Увеличивает требуемое время выполнения.
- Увеличивает сложность для одного теста.
Итак, есть ли способ заказать свои тесты в Юнит, что мне не хватает? Если нет, то почему это не так? Стоит ли использовать другой инструмент?