Java

Java/Java 학습

[JAVA] 예외 테스트 (jUnit5의 assertThrows)

1. 예외 발생 메서드(검증 대상) public class DoSomething { public static void func() { throw new RuntimeException("some exception message..."); } } RuntimeException이 발생하는 메서드를 만들었다. 우리가 검증해야할 검증 대상이다. 2. 예외 테스트 코드 작성하기 위에서 작성한 "예외 발생 메서드가 예외를 잘 발생하는지"를 테스하는 코드를 4가지 방법으로 작성해볼 수 있다. 방법1. assertThrows: 예외 타입이 같은지 검사 import static org.junit.jupiter.api.Assertions.assertThrows; @Test public void junit5에서_excepti..

Java/Java 학습

[JAVA] JUnit5 기본 테스트 어노테이션(@Test, BeforeAll, @BeforeEach, @AfterAll, @AfterEach, @Disabled)

1. @Test @Test 어노테이션을 붙이면 테스트해야 할 Test메서드다. JUnit5 기준으로 접근제한자가 Default 여도 된다. 2. @BeforeAll @beforeAll 어노테이션을 붙이면 해당 테스트 클래스를 초기화 할 때 1번만 수행되는 메서드다. static으로 선언해야 한다. @BeforeAll static void beforeAll() { System.out.println("@BeforeAll"); } 3. @BeforeEach @beforeEach 어노테이션을 붙이면 각 테스트 메서드 실행 이전에 수행되는 메서드다. @BeforeEach void beforeEach() { System.out.println("@BeforeEach"); } 4. @AfterAll @AfterAll ..

Java/Java 학습

[JAVA] UnitTest에서 사용하는 AssertJ의 AssertThat이란?

기본적으로 이 단계를 만족하도록 테스트를 작성할 수 있다. 간혹 그렇지 않은 경우도 있지만 초심자라면 더더욱 이것을 따르는 것이 좋다!! 1. given: 어떤 상황이 주어졌을 때(이 데이터 기반으로 함) 2. when: ~를 실행했을 때(검증할 것을 실행) 3. then: 검증한 결과가 ~가 나와야함 1,2 는 실행 단계, 3은 검증 단계라고 할 수 있다. 실행 단계에선는 사용자 입력을 모방해 테스트할 로직을 실행시키고 검증 단계에서는 실행 단계가 예상된 대로 동작하는지 검증한다. 1. AssertJ란? AssertJ는 많은 assertion을 제공하는 자바 라이브러리이다. 에러 메세지와 테스트 코드의 가독성을 매우 높여주고 각자 좋아하는 IDE에서 쓰기 굉장히 쉽다. 1) AssertJ 메서드 imp..

Java/Java 학습

[JAVA] Java8의 Optional이란?

1. null과 관련된 문제 null과 관련된 문제들을 크게 2가지로 요약해보면 1) 런타임에 NPE(NullPointerException)라는 예외를 발생시킬 수 있다. 2) NPE 방어를 위해서 들어간 null 체크 로직 때문에 코드 가독성과 유지 보수성이 떨어진다. 이렇게 null과 관련된 문제들로 인하여 Optional이 등장하게 되었다. 2. Optional 이란? Java8에서 Optional는 null이 올 수 있는 객체를 감싸는 Wrapper 클래스로, 참조하더라도 NPE가 발생하지 않도록 도와준다. Optional을 최대 1개의 원소를 가지고 있는 특별한 Stream이라고 생각하면 편하다. Optional 클래스는 아래와 같은 value에 값을 저장하기 때문에 값이 null이더라도 바로 ..

Java/Java 학습

[JAVA] Java8의 Stream 이란?

1. Stream 이란? Java8부터 지원하는 Stream은 컬렉션, 배열 등에 저장되어 있는 요소들을 하나씩 참조하며 반복적인 처리를 가능하게 하는 기능이다. Stream을 사용한다면 불필요한 for문과 if문 등의 분기처리를 쓰지 않고 깔끔하고 직관적인 코드로 변형할 수 있다. 2. Stream 특징 1) Stream은 원본 데이터를 변경하지 않는다. - 원본 데이터로부터 데이터를 읽기만 할 뿐, 변경은 하지 않는다. 2) Stream은 일회용이다. - 한 번 사용하면 닫혀서 재사용이 불가능하다. 필요시 정렬된 결과를 컬렉션이나 배열에 담아 반환할 수 있다. 3) Stream은 작업을 내부 반복으로 처리한다. - 내부 반복을 통해 간결한 코드를 작성할 수 있다. (내부반복이란 반복문을 메서드 내부에..

Java/Java 학습

[JAVA] Map이란? HashMap 이란?

1. Map 이란? Map은 Key-Value 쌍으로 이루어진 자료형이다. Map은 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻는다.(순서가 없음) 값(Value)은 중복될 수 있지만, Key는 고유한 값(Unique)을 가져야 한다. 2. HashMap 이란? HashMap은 Map 인터페이스를 구현한 대표적인 Map 컬렉션입니다. Map 인터페이스를 상속하고 있기에 Map의 성질을 그대로 가지고 있다. HashMap은 이름 그대로 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는 데 있어서 뛰어난 성능을 보인다. ▶ HashMap 변수명 = new HashMap(): HashMap 생성 // key: Integer, value: String..

HSY_mumu
'Java' 카테고리의 글 목록 (5 Page)