Уничтожение bean-компонента данного пакета и повторное создание перед каждым сценарием огурца (тест), чтобы предотвратить утечку состояния между сценариями - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь уничтожить бобы перед каждым тестом.Таким образом, при запуске теста он должен создавать свежие bean-компоненты для выполнения теста, поскольку требуемые классы имеют автоматическую привязку.

Я использую метод destroyBean ConfigurableListableBeanFactory.

@Autowired
private ConfigurableListableBeanFactory beanFactory;

val beanClass = Class.forName(beanDefinition.getBeanClassName());
val beans = beanFactory.getBeansOfType(beanClass);
beanFactory.destroyBean(bean);

Я ожидаю конструкторбыть вызванным перед каждым испытанием, так как я уничтожаю все бобы.Но это не вызов конструктора и использование старых bean-компонентов.

1 Ответ

1 голос
/ 27 июня 2019
@Scope("cucumber-glue")

Размещение вышеупомянутой аннотации сверху каждого компонента решало проблему. Образец -

@Component
@Scope("cucumber-glue")
public class TestComponent {

}
...