20220131 스터티 정리
2022. 2. 1. 16:00ㆍ스터디 정리
tdd : 테스트를 먼저 만들고 구현 클래스를 만들어서 돌려보는거
- 테스트 케이스 작성
> @Test
개발한 기능을 실행해서 테스트 할 때 자바는 JUnit이라는 프레임워크로 테스트를 실행
>테스트는 순서 보장이 안됨, 순서랑 상관없이 메소드별로 따로 동작하게 설계해야함
>테스트는 독립적으로 실행되어야함. 테스트 순서에 의존관계가 있으면 안됨
>@AfterEach
한번에 여러 테스트를 실행하면 이전에 실행했던 메모리가 남을 수 있다.
이러면 다음 테스트가 실패할 가능성이 있다.
@AfterEach를 사용하면 각 테스트가 종료될 때 마다 실행.(이 기능을 통해 메모리를 지우면서 테스트)
테스트 코드 단축키 > ctrl+shilt+T
- Optional이란?
> java8이상부터 지원, NPE(NullPointerException)을 방지할 수 있도록 해줌
> null 또는 실제 값을 value로 갖는 wrapper로 감싸서 NPE(NullPointerException)로부터 자유로워지기 위해 나온 Wrapper 클래스
// 메소드로 코드 빼기 > ctrl + alt+ M
ctrl + alt+ v > 알아서 return 값을 만들어줌
테스트 코드 단축키 > ctrl+shilt+T
static 사용 : alt+enter
(ex. Assertions.assertThat >> assertThat (assertj사용)
//shift + F6 => rename
class MemberServiceTest {
MemberService memberService;
MemoryMemberRepository memberRepository;
@BeforeEach
public void beforeEach(){
memberRepository = new MemoryMemberRepository();
memberService = new MemberService(memberRepository);
//이렇게 하면 같은 메소드 내에서는 같은 memberRepository가 사용됨
}
...
}
@BeforeEach : 각 테스트 실행 전에 호출된다. 테스트가 서로 영향이 없도록 항상 새로운 객체를 생성하고, 의존관계도 새로 맺어준다
public class MemberService {
/*private final MemberRepository memberRepository = new MemoryMemberRepository();*/
private final MemberRepository memberRepository;
/*
이렇게 되면 memberService 입장에서 보면
내가 직접 new 하지 않고 외부에서 memberRepository 를 넣어주게 된다
>> ***이게 Dependency Injection (DI)***
*/
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
...
}
'스터디 정리' 카테고리의 다른 글
20220201 스터디 정리 (0) | 2022.02.01 |
---|---|
20220127-Spring 스터디 (0) | 2022.01.27 |
톰캣 설치 (0) | 2021.12.18 |
서버 (0) | 2021.12.03 |
리눅스공부 (0) | 2021.11.23 |