Я пишу приемочный тест, используя Specs2.
Я хочу использовать ImpermanentGraphDatabase, чтобы иметь график Neo4j в памяти; идеально подходит для интеграционного тестирования.
Я настроил Spring-Data для Neo4j, и моя конфигурация файла Spring содержит:
<bean id="graphDatabaseService" class="org.neo4j.test.ImpermanentGraphDatabase" destroy-method="shutdown"/>
Интересно, учитывается ли вариант destroy-method="shutdown" со Specs2 вместо обычного JUnit, чтобы изолировать example каждой спецификации.
Подводя итог: Будет ли каждый example иметь собственный экземпляр графа в памяти или он будет общим для всех?
Я предполагаю, что это неприменимо, поскольку spec2 использует один и тот же экземпляр Specification для выполнения всех этих примеров Spec. Действительно, с функциональным стилем Specs2 вызывается только метод is(), объединяющий все примеры в один экземпляр.
Я также пытался реализовать трейт BeforeExample, чтобы очищать базу данных в каждом example, но... со стилем Given/Then/When кажется, что целое рассматривается как уникальное example. Действительно, разделителем является ^ вместо традиционного !, последний представляет один example.
Я хочу очищать базу данных в памяти (ImpermanentGraphDatabse) перед каждым шагом (Given или When или Then шагом)