2017-02-17 22 views
0

Test 1Простой WebMvcTest терпит неудачу с Spring загрузки Отсутствующие SpringBootConfiguration

package test.java.rest.springframework.test; 

import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.springframework.boot.test.context.SpringBootTest; 
import org.springframework.test.context.junit4.SpringRunner; 

@RunWith(SpringRunner.class) 
@SpringBootTest 
public class SpringBootWebTest { 

    @Test 
    public void contextLoads() { 
    } 

    } 

Тест 2

package test.java.rest.springframework.test; 

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; 
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; 
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; 
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 

import org.junit.Before; 
import org.junit.Test; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.test.web.servlet.MockMvc; 
import org.springframework.test.web.servlet.setup.MockMvcBuilders; 
import org.springframework.web.context.WebApplicationContext; 

public class TestWebApp extends SpringBootWebTest { 

@Autowired 
private WebApplicationContext webApplicationContext; 

private MockMvc mockMvc; 

@Before 
public void setup() { 
    mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build(); 
} 

@Test 
public void testEmployee() throws Exception { 
    mockMvc.perform(get("/")).andExpect(status().isOk()) 
      .andExpect(content().contentType("application/json;charset=UTF-8")); 

} 

} 

Ошибка

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 
    at org.springframework.util.Assert.state(Assert.java:392) 
    at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.getOrFindConfigurationClasses(SpringBootTestContextBootstrapper.java:173) 
    at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.processMergedContextConfiguration(SpringBootTestContextBootstrapper.java:133) 
    at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:409) 
    at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildDefaultMergedContextConfiguration(AbstractTestContextBootstrapper.java:323) 
    at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildMergedContextConfiguration(AbstractTestContextBootstrapper.java:277) 
    at org.springframework.test.context.support.AbstractTestContextBootstrapper.buildTestContext(AbstractTestContextBootstrapper.java:112) 
    at org.springframework.boot.test.context.SpringBootTestContextBootstrapper.buildTestContext(SpringBootTestContextBootstrapper.java:78) 
    at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:120) 
    at org.springframework.test.context.TestContextManager.<init>(TestContextManager.java:105) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTestContextManager(SpringJUnit4ClassRunner.java:152) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:143) 
    at org.springframework.test.context.junit4.SpringRunner.<init>(SpringRunner.java:49) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
    at java.lang.reflect.Constructor.newInstance(Unknown Source) 
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:84) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:70) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 

Я пытаюсь выполнить простой тест junit для моей индексной страницы контроллера mvc. Я следовал Tutorial link Но я получаю недостающую ошибку springbootconfiguarion? Как я могу создать простой тест JUnit с весенней загрузкой.

+0

В каком пакете находится ваш основной класс, который аннотируется с помощью '@ SpringBootApplication'? –

+0

Ответ указан только в вашей ошибке. вы должны указать конфигурацию в SpringBootTest. '@SpringBootTest (webEnvironment = SpringBootTest.WebEnvironment.MOCK)' Попробуйте это. Также вы можете настроить MockMvc с помощью '@ AutoConfigureMockMvc' –

ответ

0

Пустой аннотацию

@SpringBootTest 

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

@SpringBootTest(classes = { MyConfig1.class,MyConfig2.class }) 

Я не уверен, если аннотирования тест работает супер класс, так что вы можете попытаться аннотированиями тестового класса «TestWebApp» непосредственно.

0

Аннотировать свой тестовый класс @ContextConfiguration, как показано ниже.

@ContextConfiguration(classes = {TestBeanConfig.class})