JAVA(240)
-
3.2 예외를 기대하는 세 가지 방법
글의 목적 JUnit에서 적어도 세 가지 방식으로 기대한 예외를 던지는 것을 명시하는 방법을 실습합니다. 3.2.1 단순한 방식 : 애너테이션 사용 아래와 같이 @Test 애너테이션의 인자를 설정하여 해당 테스트에서 예외가 발생되기를 기대할 수 있습니다. 만약 기대한 예외가 발생하면 테스트는 통과하고, 그렇지 않으면 테스트는 실패합니다. @Test(expected=InsufficientFundsException.class) public void throwsWhenWithdrawingTooMuch() { account.withdraw(100); } 3.2.2 옛 방식: try/catch와 fail 발생한 예외를 처리하는 방법으로 try/catch 블록을 활용할 수도 있습니다. 예외가 발생하지 않으면 org..
2021.08.13 -
3.1 JUnit 단언
글의 목적 햄크레스트(Hamcrest) 라이브러리를 활용하여 단언을 활용하는 방법 실습 예외가 발생하는 테스트를 작성하는 방법 실습 3.1 JUnit 단언 JUnit에서 단언은 테스트에 넣을 수 있는 정적 메서드 호출입니다. 각각의 단언은 어떤 조건이 참인지 검증하는 방법입니다. 단언한 조건이 참(True)이 아니면 테스트는 그 자리에서 멈추고 실패를 보고합니다. JUnit이 제공하는 두 가지 단언 스타일 JUnit에서 기존 버전에 포함되어 있는 전통적인 단언 스타일(assertTrue, ... 등) 햄크레스트(Hamcrest) 라이브러리를 활용한 단언 스타일 햄크레스트란 무엇인가? 햄크레스트(Hamcrest)는 jMock이라는 Mock 라이브러리 저자들이 참여해 만들고 있는 Matcher 라이브러리입니..
2021.08.13 -
2.1 JUNIT 테스트 고려사항 구현
글의 목적 2. JUNIT 사용하기 글에서 Profile 클래스의 matches 메서드에 대한 테스트 케이스 고려사항을 구현하는 것을 실습합니다. https://yonghwankim-dev.tistory.com/89 2. JUNIT 사용 본 글은 자바와 JUNIT을 활용한 실용주의 단위 테스트 도서의 내용을 복습하기 위해 작성된 글입니다. 글의 목적 실전에 가까운 코드를 분석 코드에 대한 경로를 커버하는 1~2개의 테스트 코드 구 yonghwankim-dev.tistory.com 위 글의 테스트 고려사항에서 몇몇개는 다른 테스트 케이스와 중복되는 사항이 존재합니다. Profile 클래스의 matches 메서드 테스트 케이스 고려사항 1. Criteria 인스턴스가 Criterion 객체를 포함하지 않을 ..
2021.08.11 -
2. JUNIT 사용
본 글은 자바와 JUNIT을 활용한 실용주의 단위 테스트 도서의 내용을 복습하기 위해 작성된 글입니다. 글의 목적 실전에 가까운 코드를 분석 코드에 대한 경로를 커버하는 1~2개의 테스트 코드 구현 및 실습 테스트 배치에 대한 준비-실행-단언(AAA, Arrange-Act-Assert) 구조 분석 테스트 메서드의 공통된 로직을 모을 수 있는 @Before 애노테이션 분석 및 실습 1. 테스트 대상 이해: Profile 클래스 iloveyouboss 애플리케이션의 일부에 대한 테스트를 작성합니다. 이 애플리케이션은 잠재적인 구인자에게 유망한 구직자를 매칭하고 데이트 웹 사이트가 그러하듯 반대 방향에 대한 서비스도 제공합니다. 구인자와 구직자는 둘 다 다수의 객관식 혹은 yes-no 질문에 대한 대답을 하는..
2021.08.11 -
1. 첫번째 JUnit 테스트 만들기
1. JUnit의 기본 : 첫 번째 테스트 통과 학생(Sutdnet) 클래스는 이름과 4과목의 점수를 담은 정수형 리스트를 가지고 있습니다. 그리고 StudentScoreCalculator 클래스는 각각의 학생 클래스를 추가하는 Student 타입의 리스트를 가지고 있습니다. 본 글의 목적은 StudentScoreCalculator 클래스에 각각의 학생들의 평균을 구하고 평균들의 평균을 구하는 메서드를 구현합니다. 그리고 이렇게 구현한 메서드가 올바르게 작동하는지 JUnit 테스트를 생성하여 확인해봅니다. step1 프로젝트 생성(iloveyouboss_01) step2 패키지 및 클래스 생성 practice 패키지 생성 Student 클래스 생성 StudentScoreCalculator 클래스 생성 s..
2021.08.10 -
10. 스프링 MVC 프레임워크 동작 방식
10.1 스프링 MVC 핵심 구성 요소 위의 그림에서 의 의미는 스프링 빈으로 등록해야 함을 의미한다. 그리고 노랑색 박스는 개발자가 직접 구현해야 하는 요소이다. 스프링 MVC 핵심 구성 요소 DispatcherServlet : HandlerMapping, HandlerAdapter, ViewResolver, View와 같은 구성 요소 중앙에 위치하여 모든 연결을 담당한다. HandlerMapping : 클라이언트의 요청 경로를 이용해서 이를 처리할 컨트롤러 빈 객체를 검색하고 처리할 컨트롤러를 DispatcherServlet에게 전달하는 역할을 수행한다. Controller : 웹 브라우저가 원하는 처리 요청을 수행한다. 컨트롤러의 종류는 다음과 같다. @Controller 애노테이션을 이용해서 구현..
2021.07.30