JAVA/JUNIT(6)
-
AssertJ 테스트시 객체의 동등성(Equality) 검증 방법
배경 주식 포트폴리오 가상 관리 프로젝트(FineAnts)를 수행중 포트폴리오(Portfolio)라는 엔티티가 존재합니다. 포트폴리오 엔티티는 예산(Budget), 목표 수익 금액(TargetGain), 최대 손실 금액(MaximumLoss)라는 숫자형 데이터 타입을 필드 멤버로 가지고 있습니다. 기존에는 이 숫자형 데이터 타입을 Long 타입으로써 사용하고 있었고 테스트 코드 작성시 Long 타입의 데이터값을 전달하여 테스트를 검증하였습니다. 예를 들어 기존의 테스트 코드는 다음과 같았습니다. Portfolio changePortfolio = portfolioRepository.findById(portfolioId).orElseThrow(); assertThat(changePortfolio) .extr..
2024.04.07 -
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