2014-01-24 3 views
0

У меня есть класс с именем TestedClass, который помечается @Service («сервис»).
Я хочу ввести этот класс в свой тестовый класс JUnit.@Autowired дает другой объект в каждый момент времени теста JUnit

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(locations = {"classpath:/META-INF/spring/applicationContext.xml"}) 
public class JUnitTest { 

@Autowired 
TestedClass testedClass; 

@Test 
public void test() { 
    System.out.println(testedClass.toString()); 
} 

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

[email protected] 
[email protected] 

Почему?

+0

Ваш вопрос не заполнен. Обычно вы не запускаете сервер (что бы вы ни называли «сервер») для запуска модульных тестов. Вы должны дать более подробную информацию. – mrembisz

ответ

0

Если вы используете тест несколько раз, различные экземпляры компонента будут введены. После запуска теста первый компонент будет уничтожен. При повторном тестировании необходимо создать новый экземпляр (singleton). Рамка тестирования будет запускать контейнер IOC один раз за один запуск теста, а бобы не будут сохраняться на нескольких запусках.

+0

На самом деле я хочу протестировать уже вложенный ** испытанный объект Class ** в ** класс JUnitTest **. Но эти два объекта не одинаковы. –

+0

@PyaeThuAung Но вы используете тест несколько раз? –

+0

Да. Но я не получил уже введенный объект ** testClass ** этим кодом. –

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