@PostMapping("/{menuId}")
public ResponseEntity<CommonResponseDto<OrderResponseDto>> sendOrder(
	@PathVariable(name = "menuId") Long menuId,
	@AuthenticationPrincipal UserAuth auth) {
	return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(
		CommonResponseDto.of(
			OrderSuccessCode.ORDER_CREATE_SUCCESS,
			orderService.sendOrder(menuId, auth)
		)
	);
}
일부러 return할 때, ResponseEntity.status(BAD_REQUEST)로 설정해봤다.
@WebMvcTest(OrderController.class)
@ActiveProfiles("test")
class OrderControllerTest {
	@Autowired
	MockMvc mockMvc;
	@MockitoBean
	OrderService orderService;
	@MockitoBean
	private JwtAuthenticationFilter jwtAuthenticationFilter;
	@DisplayName("새로운 주문을 요청(생성)합니다.")
	@Test
	@WithMockUser(username = "wannabeing")
	void sendOrder() throws Exception {
		// given
		...
        
       
		// when & then
		mockMvc.perform(MockMvcRequestBuilders
				.post("/api/orders/{menuId}", 1L)
				.contentType(MediaType.APPLICATION_JSON)
				.with(csrf()))
			.andDo(print())
			.andExpect(status().isCreated());
	}
 }
.with(csrf())는 Spring Security가 CSRF 보호를 사용하는 경우,
아니.. 성공해서 기분이 좋긴 하다만 BAD_REQUEST면 400이 떠야하는데..
무조건 200이 뜨는 상황이 발생해버렸다.. 어디가 문제였을까?
@WebMvcTest(OrderController.class)
@ActiveProfiles("test")
class OrderControllerTest {
	@Autowired
	MockMvc mockMvc;
	@MockitoBean
	OrderService orderService;
	// ✅ 이 부분이 문제였다!!!
	@MockitoBean
	private JwtAuthenticationFilter jwtAuthenticationFilter;
    ...
✅ 필터는 목(Mock)객체로 만들지 않아도 되는 부분이라고 한다.
💡 요청 처리 흐름
HTTP 요청 → Tomcat → "Filter" → DispatcherServlet → Interceptor → Controller
@Slf4j
@Component
@RequiredArgsConstructor
public class JwtAuthenticationFilter extends OncePerRequestFilter {
	// ✅ 의존성 주입이 필요한 부분
	private final JwtTokenProvider jwtTokenProvider;
	private final BlackListService blackListService;
	
    ...
DispatcherServlet 앞단에서 동작한다.JwtFilter를 거치기 때문에ex. JwtTokenProvider, BlackListService근데 왜 400대가 안뜨는지는 아직까지도 몰?루...😇
@WebMvcTest(OrderController.class)
@ActiveProfiles("test")
class OrderControllerTest {
	@Autowired MockMvc mockMvc;
	@MockitoBean OrderService orderService;
	// ✅ 필터에게 필요한 의존성 주입
	@MockitoBean private JwtTokenProvider jwtTokenProvider;
	@MockitoBean private BlackListService blackListService;
    
    ...
따라서 필터를 Mock로 만들지 말고, 필터에 의존성인 두개의 서비스를 Mock으로 설정하였다.

야호~!~!~! 🚀🚀🚀🚀
내배캠 튜터님 (샤라웃 팀장님)
테스트 코드 너무 어렵습니다.. (샤라웃 지지합니다)