상세 컨텐츠

본문 제목

[Spring boot] 테스트 케이스 작성하기

Programming/BackEnd

by Dal_pang 2023. 2. 22. 23:06

본문

자바에서는 JUnit이라는 프레임워크를 통해 테스트를 수행할 수 있다. 테스트는

 

test 디렉터리 안에서 생성하여 사용.

 

디렉토리 : main에 작성한 디렉토리와 통상적으로 동일하게 작성

테스트 파일명 : main에 작성한 현재 테스트하려는 파일명 + 'Test'라는 이름으로 파일 생성.

 

위와 같이 생성하는 것이 관례.

 

테스트 하려는 기능 이름으로 메소드를 만들고 위에 @Test어노테이션을 붙여준다.

다음과 같은 형식으로생성됨.

class MemoryMemberRepositoryTest {
    MemberRepository repository = new MemoryMemberRepository();

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

        repository.save(member);
        Member result = repository.findById(member.getId()).get();
//        Assertions.assertEquals(member, result); // org.junit.jupiter.api.Assertions
        assertThat(member).isEqualTo(result); //org.assertj.core.api.Assertions;
    }
...

 

*** .get()을 통해 값을 가져오는 것은 findById가 optional클래스이기 때문! 

 

 

값 비교하기

- Assertions.assertEquals(비교할 값1, 비교할 값2)

- Assertions.assertThat(비교할 값1).isEqualTo(비교할 값2)

       ==> 이건 (static으로 import 하면) assertThat(비교할 값1).isEqualTo(비교할 값2) 이렇게 사용할 수도 있음.

두번째 방법이 좀 더 쉽게 사용 가능하다고 한다.

 

 

테스트 실행은 순서대로 되는 것이 아니므로 순서와

상관없이 따로 각자 잘 동작할 수 있도록 작성해줘야 한다.

 

때문에 테스트를 위해 객체를 저장해야 하는 경우, 

각각의 테스트 메서드가 실행된 후 저장값들을 지워주는 다음과 같은 작업을 해줘야 함.

 

-repository.java 파일

public void clearStore(){
    store.clear();
}

 

-repositoryTest.java 파일

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

 

프로젝트가 커질수록, 테스트 사용은 필수!

 

rename shotcut : shift+ f6.

 

728x90

관련글 더보기