My Blog

Assertions 테스트 본문

스프링부트/스프링부트 인프런 김영한님

Assertions 테스트

JAESG 2023. 1. 13. 23:00

Junit과 assertj에서 지원하는 테스트 기능으로 TDD를 경험해볼수있다.

 

어떤 기능을 만들었을 때 그 기능이 잘 동작하는 지를 확인해보려면 테스트코드를 만들어야한다.

테스크코드가 없이 개발을 하면은 혼자하면 상관이 없는데 협업할 때와 라인이 몇만개가 넘어갈 때 테스트코드없이 개발이 거의 불가능한 수준임.

 

클래스에서 Command + N하면 테스트클래스를 편리하게 만들 수 있음

Command + option + V = 자동으로 값을 담을 수 있는 변수 생성

 

 

    @Test
    public void 중복_회원_예외() {
        //given
        Member member1 = new Member();
        member1.setName("spring");

        Member member2 = new Member();
        member2.setName("spring");

        //when
        memberService.join(member1);
        assertThrows(IllegalStateException.class, () -> memberService.join(member2));
//        try {
//            memberService.join(member2);
//            fail();
//        }catch(IllegalStateException e){
//            Assertions.assertEquals(e.getMessage(), "이미 존재하는 회원입니다.");
//        }
        //then
    }

}

assertThrows = 예외를 검증할 수 있는 테스트 

뒤에 껄 실행할껀데 앞에 예외가 터지는지 확인할 수 있음

 

MemoryMemberRepository memberRepository;
MemberService memberService;

@BeforeEach
public void beforeEach() {
    memberRepository = new MemoryMemberRepository();
    memberService = new MemberService();
}

@AfterEach
public void afterEach() {
    memberRepository.clearStore();
}

@BeforeEach = 각 테스트가 실행되기 전에 실행되는 메소드

@AfterEach = 각 테스트가 끝나고 나서 실행되는 메소드

728x90
Comments