자바/김영한 인강

김영한 1일차 알게된 것

2023. 9. 20. 03:01
글 목차


728x90

Optional 클래스

Optional<Member>은 함수의 반환값으로 사용할 수 있다. 만약 값이 없으면 Null이 반환 된다. 다만 이걸 받는 쪽에서 Optional의 껍질을 벗기고 싶다면 get()메서드를 사용해 줘야 한다.

public Optional<Member> findById(Long id) {
    return Optional.ofNullable(store.get(id));
}

Member result = repository.findById(member.getId()).get();

 

한번에 변수명 바꾸기

Shift + F6을 하면 한번에 변수명을 바꿀 수 있다.

 

메서드 추출하기

Ctrl + Alt + M을 사용하면 함수를 추출할 수 있다.

 

테스트 클래스 추출하기

Ctrl + Shift + T를 사용하면 테스트 클래스를 만들 수 있다.

 

Test 클래스

테스트클래스에 테스트 하고자하는 클래스에 대응하는 테스트 클래스를 만든다.

관례적으로 이름은 $('기존테스트케이스 이름') + Test 이다.

 

Assertions 라는 클래스를 사용한다. 메서드는 assertionThat('원래').isEqualsTo('결과')

@Test
public void save() {
    Member member = new Member();
    member.setName("spring");

    repository.save(member);

    Member result = repository.findById(member.getId()).get();

    Assertions.assertThat(member).isEqualTo(result);
}

 

또한 @Test 어노테이션을 붙힐것

메서드이름은 관례적으로 테스트 하고자하는 메서드와 같게 함

https://github.com/okanekudasai/kimyounghan/blob/master/%EC%8A%A4%ED%94%84%EB%A7%81%20%EC%9E%85%EB%AC%B8/demo1/src/test/java/com/example/demo/repository/MemoryMemberRepositoryTest.java

 

@AfterEach (소스참고)

각각의 테스트 메서드가 실행된 후에 실행될 메서드

 

빈 등록

1. 컴포넌트 스캔 방식

그냥 하던대로 @Controller @Service @Repository 붙혀서 하던거

 

2. 직접 등록

@Configuration 어노테이션을 붙힌 클래스 생성

거기서 @Bean어노테이션을 붙힌 클래스에서 새로운 인스턴스를 생성하면 해당 클래스는 싱글턴 패턴으로 관리됨

@Configuration
public class SpringConfig {

    @Bean
    MemberService memberService() {
        return new MemberService(memberRepository());
    }

    @Bean
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }
}

https://github.com/okanekudasai/kimyounghan/blob/master/%EC%8A%A4%ED%94%84%EB%A7%81%20%EC%9E%85%EB%AC%B8/demo1/src/main/java/com/example/demo/SpringConfig.java

728x90
김영한 1일차 알게된 것