2016-03-10 9 views
0

Я пытаюсь подготовить конфигурацию тестов в своем приложении. Один из моих тестов выглядит примерно так:Весеннее тестирование тестовой сессии сеанса загрузки

@RunWith(SpringJUnit4ClassRunner.class) 
@WebAppConfiguration 
@SpringApplicationConfiguration(TestApplication.class) 
public class SomeTest { 

    @Autowired private SomeService service; 

    @Test 
    public void getLatestConfigurationForDeviceTest() { 
     Device config = service.getDevice(); 
     assertThat(config).isNotNull(); 
     ... 
    } 
} 

SomeService со ссылкой на область сеанса обслуживания. TestApplication настраивается:

@Configuration 
@EnableAutoConfiguration 
@ComponentScan(basePackages = { 
    "com.example.myapp.service", 
    "com.example.myapp.repository", 
    "com.example.myapp.listener" 
}) 
@EnableJpaRepositories(basePackages = { 
    "com.example.myapp.repository" 
}) 
@EntityScan(basePackages = { 
    "com.example.myapp.domain.entity" 
}) 

Применение вызвал исключение:

... 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.sessionBean': Scope 'session' is not active for the current thread; 
... 
Caused by: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, 

каким-то образом издеваться сессии весной загрузки тестов? Это решение AbstractSessionTest не работает.

ответ

0

С 3.2 Пружина поддерживает такие тесты, посмотрим на test web scoped beans

Пример 11.12. Контекст сеанса тест боб

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