나는 내 아래의 컨트롤러
@Controller
public class MasterController {
@GetMapping("/")
public String goLoginPage(){
return "index";
}
}
나는 다음과 같은 이]1봄 문서 테스트 컨트롤러입니다.
지금,나는 원하 테스트 컨트롤러에 의해 인스턴스화는 웹층과하지 않는 전체 봄 컨텍스트로에서 주어진 문서입니다. 아래에 나의 코드를 동일합니다.
@RunWith(SpringRunner.class)
@WebMvcTest
public class MasterControllerTestWithWebLayer {
@Autowired
MockMvc mockMvc;
@Autowired
MasterController masterController;
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void testLoginHome() throws Exception{
mockMvc.perform(get("/"))
.andExpect(status().isOk())
.andExpect(view().name("index"));
}
}
을 실행할 때 이 테스트는 나는 오류를 찾을 수 없습@SpringBootConfiguration,...etc.`. 그러나 내가 혼동 왜 그것을 요청 봄 구성할 때 우리는 그것을 원하지 않는 인스턴스화하지만 사용하려 웹층이다. 친절하게 저 오른쪽 방향으로 여기에 무슨 일이 일어나고 있는지. 또한 해결하는 방법이다. 감사
그래서 여기에는 이 솔루션:
문서에서 감지 테스트 구성말한다:
색 알고리즘 작품에서부터 패키지 포함하는 테스트를 찾을 때까지@SpringBootApplication 또는@SpringBootConfiguration 석 클래스입니다. 만큼 당신은 코드를 구성에 합리적인 방법의 주요 구성은 일반적으로 발견된다.
그래서@SpringBootApplication
야에서 높이 패키지의 계층 구조상 시험 클래스 e.g 경우 테스트 클래스가에서 패키지com.zerosolutions.컨트롤러
다음@SpringBootApplication
클래스에 있어야 패키지보다 더 높com.zerosolutions.컨트롤러
패키지.e com.zerosolutions또는
com`.
문
하지만 경우에는@SpringBootApplication
클래스에서는 동일한 수준으로 테스트 클래스지't 을 찾을 수 있다.e com.zerosolutions.일반적으로`. 이 경우에는'll 다음과 같은 오류가:
java.랭.IllegalStateException:을 찾을 수 없습@SpringBootConfiguration 를 사용해야 합@ContextConfiguration 또는@SpringBootTest(수업=...)테스트
솔루션
실행하는 경우에는 통합형 테스트할 수 있습 명시적으로 언급하는@SpringBootApplication
등 다음과 같이
@RunWith(SpringRunner.class)
@SpringBootTest(classes={SpringBootApp.class})
하지만 당신이 원하는 경우에 단위의 테스트 컨트롤러지't 할 필요가 전체 봄다. 할 수 있는 오히려 대체한@SpringBootTest
와@WebMvcTest(MasterController.class)
. 이스의 인스턴스를 만 웹사층을 가진MasterController
그리고 전체 봄다.
문
하지만 문제는 당신이 다시 실행 오류가 우리가 이전에 직면:
java.랭.IllegalStateException:을 찾을 수 없습@SpringBootConfiguration 를 사용해야 합@ContextConfiguration 또는@SpringBootTest(수업=...)테스트
그리고@WebMvtTest
있지 않은클래스의 특성은 다음과 같
@SpringBootTest명시적으로 언급하는
@SpringBootApplication`클래스입니다.
그래서 거기에는 두 가지 솔루션.
솔루션
첫:이 클래스는 응용 프로그램 패키지보다 더 높은 테스트 클래스 i.e com.zerosolutions또는
com`패키지입니다.
초:언급@SpringBootApplication
클래스는 아래와 같이 명시적으로
@RunWith(SpringRunner.class)
@WebMvcTest(MasterController.class)
@ContextConfiguration(classes={SpringBootApp.class})
희망을 지우는 봄 테스트 구성 혼란이 있습니다. 감사
하는 경우 Application.java 클래스(src/main/자바)에 위치한 아
`com.니다.B
테스트 클래스 ApplicationTest.java (in src/시험/java)해야에서
com.니다.B
또는com.니다.B.C
또는`com.니다.B.C.D
당신이 오류를 테스트하는 경우 등은 아래에 있는 다음과 같은 패키지
com.A
또는com.니다.C
또는`com.니다.D
봄에 부팅 일반 규칙테스트 클래스 패키지 이름으로 시작해야 패키지 이름 JAVA 클래스의 포장을 테스트 할
나는 같은 오류를 발견했을 때 생성 프로젝트 나 pom.xml 제 groupId 로 com.예 아닌 내 도메인의 실제:
<groupId>com.예</groupId>
나는 수정 pom.xml 다:
<groupId>com.mydomain</groupId>
다음으로,저는 변경된 파일 구조에서:
src/시험/java/com/예를 들어``src/시험/java/com/mydomain
마지막으로,나를 업데이트 했 패키지 내 선언
SampleProjectApplicationTest.java
파일을 올바른 파일 구조입니다. 한때는 모든 장소에서 테스트를 사용한다.
나는 확실하지 않는 방법을 함께했 com.예를 들어 내는 프로젝트가 정확하지만,고정되었는 간단을 수도 있습니다.
희망이 누군가가 도움이 됩니다.