인프런 커뮤니티 질문&답변

백엔드개발님의 프로필 이미지

작성한 질문수

스프링 기반 REST API 개발

비즈니스 로직 적용

테스트시 enum 값 불일치

21.03.08 20:28 작성

·

546

0

public enum EventStatus {
DRAFT, PUBLISHED, BEGAN_ENROLLMENT;
}

@Enumerated(EnumType.STRING)
private EventStatus eventStatus = EventStatus.DRAFT; // 기본값 설정

@Test
@TestDescription("정상적으로 이벤트를 생성하는 테스트")
public void createEvent() throws Exception {
EventDto event = EventDto.builder()
.name("Spring")
.description("REST API Development with Spring")
.beginEnrollmentDateTime(LocalDateTime.of(2018, 11, 23, 14, 21))
.closeEnrollmentDateTime(LocalDateTime.of(2018, 11, 24, 14, 21))
.beginEventDateTime(LocalDateTime.of(2018, 11, 25, 14, 21))
.endEventDateTime(LocalDateTime.of(2018, 11, 26 , 14, 21))
.basePrice(100)
.maxPrice(200)
.limitOfEnrollment(100)
.location("강남역 D2 스타텁 팩토리")
.build();
//Mockito.when(eventRepository.save(event)).thenReturn(event);

mockMvc.perform(post("/api/events")
.contentType(MediaType.APPLICATION_JSON_VALUE)
.accept(MediaTypes.HAL_JSON_VALUE)
.content(objectMapper.writeValueAsString(event)))
.andDo(print())
.andExpect(status().isCreated())
.andExpect(jsonPath("id").exists())
.andExpect(header().exists(HttpHeaders.LOCATION))
.andExpect(header().string(HttpHeaders.CONTENT_TYPE, MediaTypes.HAL_JSON_VALUE))
.andExpect(jsonPath("id").value(Matchers.not(100)))
.andExpect(jsonPath("free").value(false))
.andExpect(jsonPath("offline").value(true))
.andExpect(jsonPath("eventStatus").value(EventStatus.DRAFT));

java.lang.AssertionError: JSON path "eventStatus" 

Expected :DRAFT

Actual   :DRAFT

위와 같은 오류가 발생합니다.

아래와 같이 String 값을 직접 입력해주면 통과하구요...

.andExpect(jsonPath("eventStatus").value("DRAFT"));

어떻게 해결해야 할 지 알고싶습니다.

답변 1

0

백기선님의 프로필 이미지
백기선
지식공유자

2021. 03. 10. 04:03

JSON에 들어있는 값은 문자열이지 enum 타입이 아니니까 타입이 맞지 않으니 다른게 맞지 않을까요? 문자열을 Enum하고 비교하지 마시고 문자열끼리 비교하거나 Enum끼리 비교해야겠죠.