JUnit 만들어보기⛳️
·
Test
이번 글에서는 Java 진영에서 테스팅을 위해 사용되는 프레임워크인 JUnit을 만들어보겠습니다. 참고프레임워크가 내가 작성한 코드를 제어하고, 대신 실행하면 그것은 프레임워크가 맞습니다(JUnit)반면에 내가 작성한 코드가 직접 제어의 흐름을 담당하면 그것은 프레임워크가 아니라 라이브러리입니다.(스트림 라이브러리)https://curlunit.sourceforge.net/doc/cookstour/cookstour.htmJUnit A Cook's Tour를 참고해서 진행하겠습니다.먼저 기본 개념인 TestCase를 나타내는 개체를 만들어야 합니다. 개발자는 종종 테스트 사례를 염두에 두고 있지만 다양한 방식으로 이를 실현합니다.print statementsdebugger expressionstest sc..
@WebMvcTest를 사용하지 않는 컨트롤러 테스트 작성하기
·
Test
보통 Web Layer(컨트롤러 계층)을 테스트할 때 슬라이싱 테스트인 @WebMvcTest를 사용합니다. 이번 글에서는 @WebMvcTest를 사용했을 때 불편했던 점들과 개선한 방법에 대한 경험을 공유하고자 합니다.@WebMvcTest란?여러 스프링 테스트 애노테이션 중, Web(Spring MVC)에 집중할 수 있는 애노테이션입니다.선언할 경우 @Controller, @ControllerAdvice 등을 사용할 수 있습니다.단, @Service, @Component, @Repository 등은 사용할 수 없습니다. - 스프링 부트와 AWS로 혼자 구현하는 웹 서비스컨트롤러 계층 만을 슬라이스 테스트할 수 있도록 도와주는 애노테이션입니다. WebMvcTest (Spring Boot 3.1.2 API)..
GDSC 모던 자바 인 액션 멘토링 회고
·
회고
8월 9일을 시작한 GDSC 모던 자바 인 액션 스터디가 오늘(10월 9일) 8주차 Optional 클래스와 날짜와 시간 클래스 학습으로 마무리됐다.처음 진행해 본 강의식 스터디를 리뷰해보려고 한다.왜 했는가?2021년 초로 기억한다. 스프링을 학습하기 위해 인프런에 올라온 스프링 입문 강의를 듣는데, 다음과 같은 코드를 보여주셨다.강사님께서는 이 강의가 자바 8 강의는 아니니까 ~ 라고 말씀하시면서 강의를 이어나가셨지만, 자바 8 문법에 익숙하지 않았던 수강생인 나는 매우 당황스러웠다. 그당시 들었던 의문점은 다음과 같다.화살표는 어떤 의미이지..?Member를 왜 Optional로 감싸서 반환하지..?stream()을 꼭 선언해줘야 filter를 쓸 수 있는걸까?사실상 자바 8에 대한 이해가 0%에 ..
Enum 비교 == 아니면 equals()?
·
Java
들어가며 GDSC 모던 자바 인 액션 스터디 발표자료를 준비하기 위해 책을 읽어보던 도중, 책에서 Enum 비교를 위해 공통적으로 equals 메서드를 사용하는 것을 알게 되었습니다. Enum은 == 비교가 가능하며 이에 따른 이점이 존재하므로, 강의를 진행함에 있어서 책에서 제공하는 소스 코드와 다르게 진행하게 된 이유를 말씀드리고자 합니다. 우리는 String의 문자열 내용을 비교할 때는 String의 equals 메서드를 사용합니다. JLS, 15.21.3 Reference Equality Operators == and != 를 보면 해당 내용에 대한 설명이 잘 나와있습니다. (마지막 문단) == 는 String 유형의 참조를 비교하는데 쓰일 수 있지만, 이러한 동등성 테스트는 두 피연산자가 동일한..
표준 예외를 사용하기
·
트러블 슈팅
홍익대학교 개발자 멘토링에 참여하면서 TDD로 문자열 계산기를 구현하라는 미션을 받았습니다. 요구사항 중 문자열 계산기에 숫자 이외의 값 또는 음수를 전달하는 경우 RuntimeException 예외를 throw한다 라는 내용이 있어, 다음과 같은 검증 메서드를 구현했습니다. private static void checkInputIsNegative(String input) { if (getParseInt(input) < NEGATIVE_NUMBER_STANDARD) { throw new RuntimeException("숫자 이외의 값 또는 음수는 계산할 수 없습니다."); } } 리뷰어분께서 다음과 같은 리뷰를 남겨주셨는데, 지금까지 예외에 대해 잘 알아보지 않고 사용한 것 같아서 이펙티브 자바를 통해 ..