Оба подхода нацелены на регистрацию целевого типа в контейнере Spring.
Разница заключается в том, что @Bean
применим к методам, тогда как @Component
применим к типам.
когда вы используете аннотацию @Bean
, вы управляете логикой создания экземпляра в теле метода (см. пример выше ). С аннотацией @Component
вы не можете.
Я думаю, это зависит от инструмента, который вы используете для выполнения шагов.
Если вы используете Cucumber, вы можете смешать порядок Given/When/Then/And/But
, как вам нравится.
Если вы смешиваете ключевые слова каким-то интересным способом, вы можете уничтожить одно из важных свойств Gherkin, способность функционировать как живая документация. Можно создать сценарий, который не читается таким образом.
Что мне кажется, что вы хотели бы сделать, это создать новый сценарий, который работает на более высоком уровне абстракции, а не расширяет небольшую сценария в более крупный сценарий. Или возможно изменить текущий сценарий на более высокий уровень абстракции.
Наличие двух сценариев на разных уровнях абстракции не обязательно является плохим. Он документирует и выполняет ваш продукт с двух разных точек зрения.