Тествам набор от класове, които ще,в крайна сметка, да се използва за създаване на боб в контекста на пролетта. Използвам JUnit за тестване. Искам да се уверя, че когато инстанциите на тези класове са инстанциирани програмно в рамките на тест, че методите на жизнения цикъл и@ Задължителните сетъри се извикват правилно. Знам, че мога да направя това чрез обикновен стар-java-прокси, но се чудя дали съществуват специфични инструменти през пролетта (или другаде), които ще ми помогнат.
Търся да напиша нещо подобно
X x = ???.newBeanInstance(X.class);
x.setFoo(foo);
x.setBar(bar);
x.$postConstruct();
...
x.$preDestroy();
x = null;
Другата, по-малко желана, опция е просто да създадете XML контекста и да го използвате за инициализиране на копията.
Отговори:
2 за отговор № 1Ако изведете целия контекст, можете да използвате spring-test
пакет @ContextConfiguration
.
Ако искате да се справите с нещата ръчно, вие сте сами (почти). Ако имате инжекция на място, можете да използвате ReflectionTestUtils
за да зададете зависимости. Но освен това вие:
- инстанцирате обекта с
new X()
- установяване на обаждания
- извикайте метода на инициализатора (трябва да знаете кой е)
- наречете метода за унищожаване в края на краищата