Я сталкиваюсь с проблемами последовательности при написании тестов BDD с помощью нашего API (Spring + Hibernate). Мы используем JBehave в качестве средства запуска BDD и базы данных HSQL.
В основном я создал следующий случай, чтобы объяснить проблему, с которой я сталкиваюсь.
У меня две истории. Обе истории вставляются в таблицу DUMMYPRODUCT. Мы указываем, что перед каждым сценарием мы очищаем все данные и сбрасываем схему, используя следующее:
«ОТРЕЗАТЬ ПУБЛИЧНУЮ ИДЕНТИФИКАЦИЮ ПЕРЕЗАПУСКА СХЕМЫ И БЕЗ ПРОВЕРКИ»
Затем мы повторно инициализируем данные таблицы с помощью предопределенного сценария sql, который включает 2 вставки в DUMMYPRODUCT,
И сбрасывает последовательность (предположительно) с помощью
ПОСЛЕДОВАТЕЛЬНОСТЬ УДАЛЕНИЯ DUMMYPRODUCT_SEQ; СОЗДАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ DUMMYPRODUCT_SEQ НАЧАТЬ С 3 УВЕЛИЧИТЬ НА 10;
Но я сталкиваюсь с крайне странным поведением, поскольку последовательности не сбрасываются как между историями, так и сценариями. Вместо этого они, кажется, переходят к следующей истории/сценарию, а затем сбрасываются внутри, т.е. не переходя к следующему блоку последовательностей, что приводит к нарушению ограничения.
exception=java.sql.SQLIntegrityConstraintViolationException: нарушение ограничения целостности: уникальное ограничение или нарушение индекса; Таблица SYS_PK_10216: DUMMYPRODUCT
Опытные вставки поведения в DUMMYPRODUCT для DUMMYPRODUCTID
(DUMMYPRODUCTID)
Первая история
Сценарий
3
4
Следующая история
Сценарий
5
6< br/> 7
8
9
10
11
12
3
4
5 исключение
7 исключение
9 исключение
Сценарий
11
12
3
4
5
6
7
8
9
10
11 исключение
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Сценарий
27
28
29
30
31
32
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 исключение< br/> 29 исключений
Сталкивались ли вы с такими проблемами в прошлом с вашими реализациями HSQL?