@Override
    public String resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
                                  NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
        HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();

        HeaderProperty parameterAnnotation = parameter.getParameterAnnotation(HeaderProperty.class);
        String headerName = parameterAnnotation.headerName();
        String headerProperty = request.getHeader(headerName);

        if (headerProperty == null) {
            throw new MissingHeaderPropertyException(headerName);
        }
        return headerProperty;
    }
@Test
    void 검증값이_헤더에_존재하면_값을_반환한다() {
        // given
        String headerName = "test";
        String headerValue = "1234";
        NativeWebRequest request = mock(NativeWebRequest.class);
        MockHttpServletRequest mockRequest = (new MockHttpServletRequest());
        mockRequest.addHeader(headerName, headerValue);
        given(request.getNativeRequest()).willReturn(mockRequest);
        given(headerProperty.headerName()).willReturn(headerName);

        // when
        String actual = resolver.resolveArgument(parameter, null, request, null);

        // then
        assertThat(actual).isEqualTo(headerValue);
    }