У меня есть модульные тесты с пружиной. Все тесты загружают файл конфигурации пружины, а затем добавляют еще несколько.JUnit: Могу ли я сохранить общие части весеннего контекста?
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:beans.xml" }, inheritLocations = true)
public abstract class TestBase {
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:extraBeansOne.xml" }, inheritLocations = true)
public class TestOne extends TestBase {
@Test
public void testA() {
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:extraBeansTwo.xml" }, inheritLocations = true)
public class TestTwo extends TestBase {
@Test
public void testB() {
}
}
Там также люкс с двумя испытаниями:
@RunWith(Suite.class)
@Suite.SuiteClasses({ TestOne.class, TestTwo.class })
public class TestSuite {
}
В общем файле конфигурации весной, у меня есть фасоль:
<beans ...>
<bean id="testBean" class="com.example.TestBean" />
<bean>
Проблема заключается в том, что, когда я бегу набор, testBean загружается дважды, один раз для каждого тестового класса. Поскольку он определен в общем файле конфигурации, есть ли способ предотвратить его многократную загрузку?
Где вы на самом деле с помощью 'testBean' в тестах? – isah
Что значит «загружается дважды»? Весенние бобы по умолчанию являются одиночными, поэтому, если у вас есть два экземпляра вашего testBean, это означает, что у вас есть несколько контекстов Spring. – Olaf
@isah, неважно, пользуюсь ли я этим компонентом или нет, он загружается вместе с контекстом. – Cos64