2016-06-17 2 views
0

Это вопрос об испытаниях.Jhipster: запустить junittest без веб-сервера

Я хочу испытать мое обслуживание и нуждаться в инъекциях для работы, но мне не нужен webservice пуск.

Это мой код:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = MyWebApp.class) 
@WebAppConfiguration 
@Transactional 
public class MyUserServiceTest { 

@Inject 
private MyUserService myUserService; 

@Test 
public void testRegister(){ 
    myUserService.registerNew(); 
} 

} 

, когда я запускаю его, как это:

@RunWith(SpringJUnit4ClassRunner.class) 
public class MyUserServiceTest { 

Я получаю эту ошибку:

Cannot load an ApplicationContext with a NULL 'contextLoader' 

так:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = MyWebApp.class) 
public class MyUserServiceTest { 

я получаю:

java.lang.IllegalStateException: Failed to load ApplicationContext 

, когда я добавляю @WebAppConfiguation тест работает, но я получаю WebApplication ход, который занимает много времени.

я теперь использовать мои MyWebAppTest.class, которые, как это:

@ComponentScan 
@EnableAutoConfiguration(exclude = { MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class }) 
@EnableConfigurationProperties({ JHipsterProperties.class, LiquibaseProperties.class }) 

public class MyWebAppTest { } 

но зачёте запускается вебсервис ....

ответ

1

В src/test/java, вы можете определить MyTestContext класс, исключала бы некоторые конфигурации, но определите контекст весеннего приложения с достаточным количеством зависимостей, чтобы пройти тест.

@SpringApplicationConfiguration(classes = MyTestContext.class) 

Вы можете начать с определения его аналогично MyWebApp, сделайте пробный проход, а затем исключить некоторые конфигурации, пока не будет достигнут минимальный набор зависимостей, если ваш MyTestContext класс очень специфичны для теста сервиса вы можете также определить как статический внутренний класс вашего теста, это общий шаблон в тестах Spring.

+0

спасибо, я попробую! – tibi

+0

Я удалил столько, сколько мог, но я думаю, что автоконфигурация по-прежнему делает многое. он по-прежнему запускает веб-сервер, который мне не нужен. @ComponentScan @EnableAutoConfiguration (исключите = {MetricFilterAutoConfiguration.class, MetricRepositoryAutoConfiguration.class}) @EnableConfigurationProperties ({JHipsterProperties.class, LiquibaseProperties.class}) общественного класса MyAppTest { } – tibi

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