테스트코드 네이밍 컨벤션
@DisplayName("[view][GET] 기본페이지 요청") 이런식으로 하면

요런식으로 아래에 뜬다.
Junit5부터 parameterResolve라는게 생겨서 method parameter를 실제로 resolve하거나 생성자로부터 주입을 받거나 하는 것이 가능해짐.
void givenNothing_viewRequestPage_then(@Autowired MockMvc mvc) throws Exception {
...
즉 생성자 주입을 테스트코드에서도 받을 수 있게 되었다.
private finalMockMvcmvc;
public BaseControllerTest(@Autowired MockMvcmvc) {
this.mvc =mvc;
}
@DisplayName("[view][GET] 기본 페이지 요청")
@Test
void givenNothing_viewRequestPage_then() throwsException{
//Given
//When & Then
...
생성자위에 @Autowired 써도 된다.
그것도 아니면 아래처럼 한다.
@TestConstructor(autowireMode = TestConstructor.AutowireMode.ALL)
-> 요거 통해서 constructor에는 Autowired 안붙여도 되게 해줌.
@AutoConfigureMockMvc
@SpringBootTest
class BaseControllerTest {
private final MockMvc mvc;
public BaseControllerTest(MockMvc mvc) {
this.mvc = mvc;
}
@WebMvcTest(BaseController.class)
@AutoConfigureMockMvc
@SpringBootTest
이걸로 했는데 이렇게하면 그냥 모든거 다끌어와서 매우 무겁다.
따라서 이거보단 WebMvcTest 쓰는게 가볍고 좋음.