2017-02-17 7 views
0

테스트 1간단한 WebMvcTest 봄 부팅 누락 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) 

내 mvc 컨트롤러 색인 페이지에 대한 간단한 junit 테스트를 수행하려고합니다. 나는 Tutorial link을 따라 갔다.하지만 실종 된 springbootconfiguarion 오류가 발생 했는가? 스프링 부트로 간단한 JUnit 테스트를 어떻게 만들 수 있습니까?

+0

'@ SpringBootApplication' 주석이 달린 주요 클래스는 어떤 패키지입니까? –

+0

답에 오류가 있습니다. SpringBootTest에서 설정을 언급해야합니다. '@SpringBootTest (webEnvironment = SpringBootTest.WebEnvironment.MOCK)'이것을 시도하십시오. 또한'@ AutoConfigureMockMvc'로 MockMvc를 자동으로 설정할 수 있습니다. –

답변

0

빈 주석

@SpringBootTest 

는 충분하지 않습니다. 테스트에서 사용해야하는 구성 클래스를 선언해야합니다. 당신은 이런 식으로 작업을 수행 할 수 있습니다

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

나는 확실하지 않다 테스트 최고 수준의 작품에 주석을 경우, 직접 테스트 클래스 'TestWebApp'에 주석을 시도 할 수 있도록.

0

아래와 같이 @ContextConfiguration으로 테스트 클래스에 주석을 답니다.

@ContextConfiguration(classes = {TestBeanConfig.class})