2016-02-03 4 views
0

Хотя это не лучший способ, использование наследования для составления набора тестов Geb (с использованием Spock) довольно распространено.Почему @Stepwise не работает через границы классов при использовании наследования в Geb-тесте, используя Spock?

Использование @Stepwise имеет решающее значение для создания этой работы, но это не похоже на работу через границы класса, как показано на этом изображении:

Image showing Stepwise not operating as expected

У меня есть решение рубить на месте, чтобы обойти эту проблему, но очень хотелось бы знать, будет ли это ожидаемое поведение или ошибка, которую должен изучить Geb или Spock.

+0

Почему использует '@ Stepwise' лучше, чем строить библиотеку многократно используемые функции более высокого уровня, которые можно использовать в нескольких тестах? Конечно, это может быть медленнее выполнить один раз, но я гарантирую, что это быстрее, когда вы получаете сбои, которые останавливают весь пакет при использовании '@ Stepwise'. –

+0

Я привык использовать '@ Stepwise' для создания коллекции умеренных/коротких иерархий тестов, которые начинаются с создания/регистрации пользователя и быстро становятся сутью дела. Недавно я все чаще вводил поведение в «страницу» (и теперь «модуль»), и мне очень нравится, как он развивается. Пока мы не сможем решить проблемы с настройкой данных, мы по-прежнему будем полагаться на наследование для создания моих тестовых деревьев. Я работаю над подробным описанием и вопросом о лучшей практике. Скорее всего, он будет опубликован в начале следующей недели. – joewyrembelski

ответ

0

Пошаговая аннотация работает только для одной спецификации. Он никогда не предполагал охватывать классы или разные иерархии (популярный запрос в списке рассылки Spock).

Это говорит прямо так в официальной Javadoc (курсив мой):

Указует, что методы функциональной спецификации должны выполняться последовательно в декларируемого порядка (даже при наличии параллельной спецификации бегуна), всегда начиная с первого метода. Если метод выходит из строя, оставшиеся методы будут пропущены. методы Характеристика объявлены в супер- и subspecs не влияет

http://spockframework.github.io/spock/javadoc/1.0/spock/lang/Stepwise.html

Ответ на свой вопрос: это ожидаемое поведение

 Смежные вопросы

  • Нет связанных вопросов^_^